我正在使用Selenium通过Python API绑定在Chrome中运行测试,而我无法确定如何配置Chrome以使console.log加载测试的输出可用.我看到WebDriver对象上有get_log()和log_types()方法,我看过Get chrome的控制台日志,它显示了如何用Java做事.但我没有LoggingPreferences在Python API中看到相当于Java的类型.有没有办法完成我需要的东西?
我想构建一个自动化测试,所以我必须知道chrome控制台中出现的错误.
有一个选项来获取控制台中出现的错误行?
要查看控制台:右键单击页面中的某个位置,单击"检查元素",然后转到"控制台".
我正在使用selenium的python语言绑定.正在测试的应用程序是WEBRTC应用程序,它将调试信息写入浏览器的控制台日志.运行测试时需要获取这些日志信息.当浏览器在同一系统上运行时,我能够获取日志,但是当我在远程浏览器上使用Grid运行相同的代码时,即使它们出现在浏览器中,也不会返回日志.在将节点配置到集线器时,我也尝试使用-browserConsoleLog选项,但即使这样也不起作用.
chrome_opts=webdriver.ChromeOptions()
desired_caps = chrome_opts.to_capabilities()
desired_caps.update({'loggingPrefs':{ 'browser':'ALL'}})
Run Code Online (Sandbox Code Playgroud)
通过启用如上所示的日志记录首选项,我可以在本地运行时从浏览器获取console-api和网络日志,如下所示:
driver=webdriver.Chrome(desired_caps)
driver.get(app_url)
logs = driver.get_log("browser")
# returns all the console-api, network and browser logs as I read from one of the posts
for log in logs:
if log.get('source')=='console-api':
print log.get('message')
Run Code Online (Sandbox Code Playgroud)
但是当我使用与远程浏览器相同的所需功能时,如下所示,get_logs不会返回控制台日志,尽管它出现在浏览器控制台中
driver=webdriver.Remote(command_executor=hub_url,desired_capabilities=desired_caps)
有帮助吗?
python selenium selenium-grid selenium-chromedriver selenium-webdriver
我有一个使用RSpec + Capybara的集成测试设置。我们最近从PhantomJS切换到了无头的Chromedriver,但我想不到不再显示javascript错误。
有没有一种方便的配置Chromedriver的方法,以便在capybara测试的日志输出中显示javascript错误?
访问我发现的javascript错误的方法(请参阅下文)都有点麻烦,或者不是我要找的东西。