首页 > 解决方案 > 在测试运行期间从 Chrome 捕获日志。Python

问题描述

我正在尝试在自动测试运行期间从 chrome 捕获日志。代码如下:

 binary_path = 'Chromium'
chromedriver_path = 'chromedriver'

opts = Options()
opts.binary_location = binary_path
d = DesiredCapabilities.CHROME
d['goog:loggingPrefs'] = { 'browser':'ALL',
                           'driver': 'ALL'}

driver = webdriver.Chrome(chromedriver_path, desired_capabilities=d, options=opts)

#EXAMPLE TO GET LOGS
driver.get('https://www.google.com/')
driver.find_element_by_name('q').send_keys('abc')

print('browser = ', driver.get_log('browser'))
print('driver = ', driver.get_log('driver'))
for entry in driver.get_log('browser'):
    print('entry = ', entry)

driver.quit()

打印输出:

browser =  []
driver =  []

我的问题是,为什么不打印条目以及为什么 chrome 日志没有输出

标签: python-3.xseleniumselenium-webdriverautomated-testsselenium-chromedriver

解决方案


尝试使用ChromeOptions而不是 Options。

另外,不确定您为什么使用 Chromium,这可能会影响结果。我修改了您的代码,以下代码适用于 Chrome 浏览器:

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

opts = ChromeOptions()
d = DesiredCapabilities.CHROME
d['goog:loggingPrefs'] = {'browser': 'ALL',
                           'driver': 'ALL'}

driver = webdriver.Chrome(desired_capabilities=d, options=opts)

#EXAMPLE TO GET LOGS
driver.get('https://www.google.com/')
driver.find_element_by_name('q').send_keys('abc')

print('browser = ', driver.get_log('browser'))
print('driver = ', driver.get_log('driver'))
for entry in driver.get_log('browser'):
    print('entry = ', entry)

driver.quit()

它打印出来=>

browser =  []
driver =  [{'level': 'INFO', 'message': 'Populating Preferences file: {\n   "alternate_error_pages": {\n      "enabled": false\n   },\n   "autofill": {\n      "enabled": false\n   }, ... ]

我希望这会有所帮助,祝你好运!


推荐阅读