Simple question: how to completely disable logging when using Selenium from Python bindings, ex code as follows:
browser = webdriver.Chrome()
I've tried things like:
options = webdriver.ChromeOptions();
options.add_argument('--log-level 3')
browser = webdriver.Chrome(chrome_options=options)
or even:
options = webdriver.ChromeOptions();
options.add_argument('--disable-logging')
browser = webdriver.Chrome(chrome_options=options)
but still the file 'chromedriver.log' is appearing on each new run of the tests.
The source code of Chrome's webdriver, shows the existence of an option called service_log_path
.
So if you want to get rid of the file, you could set this property to
/dev/null
if you are running under Linux/Unix ;NUL
under windowsHope it helps
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With