使用Selenium Python API绑定从Chrome获取console.log输出

msr*_*har 55 python logging selenium google-chrome

我正在使用Selenium通过Python API绑定在Chrome中运行测试,而我无法确定如何配置Chrome以使console.log加载测试的输出可用.我看到WebDriver对象上有get_log()log_types()方法,我看过Get chrome的控制台日志,它显示了如何用Java做事.但我没有LoggingPreferences在Python API中看到相当于Java的类型.有没有办法完成我需要的东西?

msr*_*har 88

好的,终于明白了:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

# enable browser logging
d = DesiredCapabilities.CHROME
d['loggingPrefs'] = { 'browser':'ALL' }
driver = webdriver.Chrome(desired_capabilities=d)

# load the desired webpage
driver.get('http://foo.com')

# print messages
for entry in driver.get_log('browser'):
    print(entry)
Run Code Online (Sandbox Code Playgroud)

source字段等于'console-api'对应于控制台消息的条目,消息本身存储在message字段中.

  • 嗯.在尝试完成并获取后,调查如何使用chrome_options执行此操作:`/usr/lib/python2.6/site-packages/selenium/webdriver/chrome/webdriver.py:54:DreprecationWarning:已弃用所需功能,请用户chrome_options.warnings.warn("Desired Capabilities已被弃用,请用户chrome_options.",DeprecationWarning) (4认同)
  • @kiminoa我遇到了selenium`2.33.0`这个问题,升级到`2.45.0`修复了它. (2认同)
  • 看起来我可以注释掉`d ['loggingPrefs'] = {'browser':'ALL'}`并得到相同的结果.此外,控制台日志的任何方式不仅仅是''级别':'SEVERE'`? (2认同)

Per*_*rdu 9

要完成答案:从 chromedriver 75.0.3770.8 开始,您必须使用goog:loggingPrefs而不是loggingPrefs.

请参阅 Chromedriver 更新日志:http ://chromedriver.chromium.org/downloads或此错误:https ://bugs.chromium.org/p/chromedriver/issues/detail?id=2976