J'utilise Selenium pour exécuter des tests dans Chrome via les liaisons API Python, et j'ai du mal à comprendre comment configurer Chrome pour rendre disponible la sortie console.log
Du test chargé. Je vois qu'il existe des méthodes get_log()
et log_types()
sur l'objet WebDriver, et je ' ai vu Récupérer le journal de la console de chrome qui montre comment faire les choses en Java. Mais je ne vois pas d'équivalent du type LoggingPreferences
de Java dans le Python = API. Existe-t-il un moyen d'accomplir ce dont j'ai besoin?
Ok, enfin compris:
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)
Entrées dont le champ source
est égal à 'console-api'
correspond aux messages de la console et le message lui-même est stocké dans le champ message
.
À partir de chromedriver, 75.0.3770.8, vous devez utiliser goog: loggingPrefs au lieu de loggingPrefs:
d['goog:loggingPrefs'] = { 'browser':'ALL' }
Pour compléter la réponse: à partir de chromedriver 75.0.3770.8, vous devez utiliser goog:loggingPrefs
au lieu de loggingPrefs
.
Voir le journal des modifications de Chromedriver: http://chromedriver.chromium.org/downloads ou ce bogue: https://bugs.chromium.org/p/chromedriver/issues/detail?id= 2976