Получение вывода console.log из Chrome с привязками API Selenium Python

Я использую Selenium для запуска тестов в Chrome через привязки API Python, и мне трудно понять, как настроить Chrome, чтобы сделать вывод console.log из загруженного теста доступным. Я вижу, что есть методы get_log() и log_types() в объекте WebDriver, и я видел Получить консольный журнал Chrome, который показывает, как делать что-то на Java. Но я не вижу эквивалент типа Java LoggingPreferences в API Python. Есть ли способ сделать то, что мне нужно?

Ответ 1

Ок, наконец-то разобрался

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.

Начиная с chromedriver, 75.0.3770.8, вы должны использовать goog: loggingPrefs вместо loggingPrefs:

d['goog:loggingPrefs'] = { 'browser':'ALL' }