11

简单的问题:如何在 Python 绑定中使用 Selenium 时完全禁用日志记录,前代码如下:

browser = webdriver.Chrome()

我试过这样的事情:

options = webdriver.ChromeOptions();
options.add_argument('--log-level 3') 
browser = webdriver.Chrome(chrome_options=options)

甚至:

options = webdriver.ChromeOptions();
options.add_argument('--disable-logging') 
browser = webdriver.Chrome(chrome_options=options)

但文件“chromedriver.log”仍然出现在每次新的测试运行中。

4

7 回答 7

13

您可以将options.add_argument("--log-level=3")Chrome 浏览器设置为与 Selenuim 一起运行,或者您可以将日志记录级别设置为更高的级别:

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

但是在这种情况下无论如何都会出现一些消息,包括启动 DevTools 消息或 SSL 握手错误消息。

要在控制台中以完全静默模式运行带有 Selenium 的 Chrome 浏览器,您应该使用以下代码段:

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

该技巧将抑制来自 Selenium 驱动程序或浏览器本身的任何控制台消息,包括一DevTools listening on ws://127.0.0.1开始的第一条消息。

同时,一些运行时的分步数据可以保存到服务日志文件中,以防它的参数被添加。

于 2020-03-06T13:26:53.803 回答
11
driver = webdriver.Chrome(service_log_path='/dev/null')
于 2013-03-12T07:23:22.587 回答
7

仅适用于 Windows 人员的示例:

webdriver.Firefox(log_path='NUL')

接受的答案是正确的,但如果你像我一样不熟悉 Python / windows,这样的例子会减少你几个小时的谷歌时间。

于 2018-10-19T17:16:25.250 回答
5

Chrome 的 webdriver的源代码service_log_path显示存在一个名为.

因此,如果您想删除该文件,可以将此属性设置为

  • /dev/null如果您在 Linux/Unix 下运行;
  • NUL在窗户下

希望能帮助到你

于 2013-02-06T13:56:21.817 回答
1

这对我有用:

chrome_options.add_experimental_option('excludeSwitches', ['enable-logging'])

礼貌:

https://joshuatz.com/posts/2020/selenium-webdriver-disabling-chrome-logging-messages/

于 2021-02-17T14:48:51.733 回答
1

如果你设置 service_log_path = None,它不会生成 geckodriver.log 文件:

driver = webdriver.Firefox(options=options, service_log_path=None)
于 2021-09-25T06:45:57.107 回答
0

我知道这很旧,但这仍然是当您寻找一种防止硒记录的方法时出现的第一件事,它并没有为我摆脱“开发监听”消息,我找到了一种方法:

ChromeDriverService service = ChromeDriverService.CreateDefaultService();
service.HideCommandPromptWindow = true;
IWebDriver driver = new ChromeDriver(service,options);
于 2021-12-08T12:35:05.327 回答