相关疑难解决方法(0)

使用Java捕获Selenium WebDriver的浏览器日志

有没有办法在使用Selenium运行自动化测试用例时捕获浏览器日志?我发现了一篇关于如何在Selenium中捕获JavaScript错误的文章.但这仅适用于Firefox,仅适用于错误.我想得到所有的控制台日志.

java selenium selenium-webdriver

59
推荐指数
5
解决办法
8万
查看次数

获取chrome的控制台日志

我想构建一个自动化测试,所以我必须知道chrome控制台中出现的错误.

有一个选项来获取控制台中出现的错误行?

要查看控制台:右键单击页面中的某个位置,单击"检查元素",然后转到"控制台".

javascript c# asp.net-mvc selenium

25
推荐指数
2
解决办法
3万
查看次数

获取chrome性能并跟踪日志

我正在尝试使用WebDriver谷歌测试自动化会议谈话和ChromeDriver "性能日志"文档页面来遵循网络性能测试中提出的想法,以获取我想要提交到网页测试以便稍后进行性能分析的跟踪数据.

如何使用python selenium绑定检索性能日志?


我试图log_types在驱动程序实例中打印出来

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://stackoverflow.com')

print driver.log_types

driver.close()
Run Code Online (Sandbox Code Playgroud)

但只有

[u'browser', u'driver']
Run Code Online (Sandbox Code Playgroud)

而且我没有看到相关的命令行开关.

python selenium google-chrome selenium-chromedriver selenium-webdriver

18
推荐指数
1
解决办法
8077
查看次数

使用Selenium从Firefox获取console.log输出

我试图console.log通过python Selenium API绑定从Firefox 获取网页的输出.根据Chrome代码以及文档中的一些建议,我尝试了以下方法:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities   
d = DesiredCapabilities.FIREFOX
d['loggingPrefs'] = { 'browser':'ALL' }
fp = webdriver.FirefoxProfile()
fp.set_preference('webdriver.log.file', '/tmp/firefox_console')
driver = webdriver.Firefox(capabilities=d,firefox_profile=fp)
driver.set_window_size(1280,1024)
driver.get('http://foo.com')
try:
    WebDriverWait(driver,10).until(lambda driver: driver.execute_script("return document.readyState") == "complete")
    for entry in driver.get_log('browser'):
        print entry
finally:
    driver.quit()
Run Code Online (Sandbox Code Playgroud)

但是,即使是一个简单的调用示例页面console.log("foo"),我也看不到"foo"通过API或/tmp/firefox_console文件返回的日志条目.难道我做错了什么?或者这是Selenium限制?

python firefox logging selenium

14
推荐指数
1
解决办法
2万
查看次数

访问Selenium中的浏览器日志?

有没有办法在Selenium中访问服务器上的浏览器上的日志?例如,如果站点执行了一个console.log("Test."),Selenium测试用例是否可以访问该日志?任何帮助,将不胜感激!(最好是在Python中).

谢谢!

〜Carpetfizz

python selenium unit-testing

6
推荐指数
1
解决办法
274
查看次数

在Laravel Dusk中记录Javascript控制台输出

我正在使用Laravel 5.6和Laravel Dusk 3.0.9。

黄昏非常方便,但是当在具有某些Javascript功能的页面上测试失败时,很难找出问题所在。Dusk会生成一个屏幕截图,这很有帮助,但是我真正需要的是查看Javascript控制台的输出。

显然,这是可能的-Dusk tests/Browser/console在安装过程中会创建一个目录,并且此PR建议JS控制台输出已记录,或者至少是可记录的

尽管没有文档(我可以找到)有关如何实际执行操作。 浏览该PR中的差异时,我看到了一个新方法logConsole()(后来storeConsoleLog()在注释中重命名为@Jonas指出),但是我似乎无法使其执行任何操作,例如:

$browser->visit('/somewhere')
        ->select('#foo', '2')
        ->value('#date', '2018-07-29')
        ->storeConsoleLog('bar')
        ->assertEnabled('button[type=submit]');
Run Code Online (Sandbox Code Playgroud)

该测试失败,并生成了一个漂亮的屏幕截图,但是没有任何日志文件的迹象。我尝试过移动->storeConsoleLog('bar')链条中的位置,例如第一个或最后一个,并在链条之前或之后作为单独的一行:

$browser->visit('/somewhere')
->...full chain here;
$browser->storeConsoleLog('bar');
Run Code Online (Sandbox Code Playgroud)

但是它们都没有任何区别。我的JS有一系列,console.log()当在浏览器中测试自己时会用到这些,它们会确切告诉我出了什么问题。我期望此功能记录这些消息。

我是否误解了公关,这有可能吗?如果是这样,怎么办?

更新

通过调试中的storeConsoleLog()方法,vendor/laravel/dusk/src/Browser.php我可以看到该方法已正确调用,但是没有控制台内容可记录。如果我手动重复测试在Chrome中执行的步骤,则会有行写入Chrome devtools控制台,实际上3是在页面加载时写入的。为什么黄昏看不到那些?

更新2

我发现,如果'--headless'从中的driver()方法中删除DuskTestCase,则在测试期间将显示浏览器。然后,您可以显示该浏览器的开发工具,并在测试运行时实时观看控制台输出。太快了,无法真正发挥作用,如果出现错误,浏览器将关闭,并且无论如何您都会丢失控制台上的所有内容(除非有办法让浏览器在发生故障时保持打开状态?),但请在此处添加此内容,以防万一。对某人有用!

laravel laravel-dusk laravel-5.6

5
推荐指数
1
解决办法
1314
查看次数

使用python检测javascript控制台输出

当我在一个javascript繁重的应用程序中工作时,我喜欢使用Console.log()来进行调试.但是,我想确保我已正确压缩生产中的所有控制台日志记录.

我想创建一个python脚本来遍历一个站点并生成一个向控制台写入内容的页面列表.我知道我可以在最小化之前翻录javascript文件并搜索"Console.Log",但我经常是项目的分析师,因此无法访问代码库.我们还有很多网站一段时间没有被触及,但可以使用扫描(伟大的实习项目:-)).

这对python有用吗?

javascript python

4
推荐指数
1
解决办法
4744
查看次数