我正在使用Selenium通过Python API绑定在Chrome中运行测试,但在弄清楚如何配置Chrome以使console.log加载的测试的输出可用时,我遇到了麻烦。我看到WebDriver对象上有get_log()和log_types()方法,并且已经看到Getchrome的控制台日志,该日志显示了如何使用Java进行操作。但是我LoggingPreferences在Python API 中看不到Java的等效类型。有什么办法可以满足我的需求?
console.log
get_log()
log_types()
LoggingPreferences
好了,终于明白了:
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)
source字段相等的条目'console-api'对应于控制台消息,消息本身存储在该message字段中。
source
'console-api'
message
从chromedriver 75.0.3770.8开始,您必须使用goog:loggingPrefs而不是loggingPrefs:
d['goog:loggingPrefs'] = { 'browser':'ALL' }