+2 votes
1 view
in Devops and Agile by (22.3k points)

I'm using Selenium to run tests in Chrome via the Python API bindings, and I'm having trouble figuring out how to configure Chrome to make the console.log output from the loaded test available. I see that there are get_log() and log_types() methods on the WebDriver object, and I've seen Get chrome's console log which shows how to do things in Java. But I don't see an equivalent of Java's LoggingPreferences type in the Python API. Is there some way to accomplish what I need?

2 Answers

+4 votes
by (38.3k points)
selected by
 
Best answer

Use this below code that will resolve this issue

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)

Starting from chromedriver, 75.0.3770.8, you have to use goog:loggingPrefs instead of loggingPrefs:

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

by (16.4k points)
Exploring how to do this with chrome_options after trying this out and getting:


/usr/lib/python2.6/site-packages/selenium/webdriver/chrome/webdriver.py:54: DeprecationWarning: Desired Capabilities has been deprecated, please user chrome_options. warnings.warn("Desired Capabilities has been deprecated, please user chrome_options.", DeprecationWarning)
by (32.7k points)
This answer solved my problem.
Thanks!
by (39.6k points)
I had this issue with selenium 2.33.0, after upgrading it to 2.45.0 fixed it.
by (36.7k points)
Entries whose source field equals 'console-api' correspond to console messages, and the message itself is stored in the message field.
by (6.1k points)
This worked for me. Thanks.
by (18.8k points)
Thanks a lot for you answer.It worked
+1 vote
by (42.6k points)

To complete the answer: starting from chromedriver 75.0.3770.8, you have to use goog:loggingPrefs instead of loggingPrefs.

See Chromedriver changelog: http://chromedriver.chromium.org/downloads or this bug: https://bugs.chromium.org/p/chromedriver/issues/detail?id=2976

by (26.9k points)
Thanks for adding the comment made me understand the answer !
by (27.8k points)
Upgrading the software helped me.
Try doing that as well if this doesn't work.
...