Seleniumを使用してChromeでPython APIバインディングを介してテストを実行していますが、Chromeを構成してconsole.log
を作成する方法がわかりませんロードされたテストからの出力が利用可能。 WebDriverオブジェクトにはget_log()
およびlog_types()
メソッドがあり、Javaで物事を行う方法を示す Get chromeのコンソールログ が表示されています。 。しかし、Python APIにはJavaの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
フィールドに格納されます。
Chromedriver 75.0.3770.8以降では、loggingPrefsの代わりにgoog:loggingPrefsを使用する必要があります。
d['goog:loggingPrefs'] = { 'browser':'ALL' }
答えを完成させるには、chromedriver 75.0.3770.8以降、goog:loggingPrefs
の代わりにloggingPrefs
。
Chromedriver changelogをご覧ください: http://chromedriver.chromium.org/downloads またはこのバグ: https://bugs.chromium.org/p/chromedriver/issues/detail?id= 2976