How to disable logging using Selenium with Python binding

You may set options.add_argument("--log-level=3") for Chrome browser to be run with Selenuim, or you may set logging level to some higher level with:

import logging
logger = logging.getLogger('selenium.webdriver.remote.remote_connection')
logger.setLevel(logging.WARNING)  # or any variant from ERROR, CRITICAL or NOTSET

But some messages will appear anyway in this case, including the starting DevTools message or SSL handshake error messages.

To run Chrome browser with Selenium in console in completely silent mode, you should use this snippet:

options = Options()
options.headless = True
options.add_experimental_option("excludeSwitches", ["enable-logging"])

That trick will suppress any console message from either the Selenium driver or the browser itself, including the first message DevTools listening on ws://127.0.0.1 at the very start.

At the same time some runtime step-by-step data can be saved to service log file, in case its argument has been added.


Just example for Windows people:

webdriver.Firefox(log_path='NUL')

Accepted answer is correct, but if you are new to Python / windows like i am, example like this will cut you few hours of google time.


driver = webdriver.Chrome(service_log_path='/dev/null')