如何使用Selenium和Python绑定禁用日志记录

时间:2012-07-23 13:49:42

标签: python selenium-chromedriver

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

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'文件。

5 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:7)

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

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

如果添加了参数,则可以同时将某些运行时逐步数据保存到服务日志文件

答案 2 :(得分:2)

Chrome的网络驱动程序source code显示存在名为service_log_path的选项。

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

  • /dev/null如果您在Linux / Unix下运行;
  • Windows下的
  • NUL

希望有所帮助

答案 3 :(得分:2)

仅是Windows用户的例子:

webdriver.Firefox(log_path='NUL')

可接受的答案是正确的,但是如果您像我这样不熟悉Python / windows,则像这样的示例将为您节省数小时的Google时间。

答案 4 :(得分:1)

这对我有用:

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

感谢:

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