关闭Selenium中的日志记录(来自Python)

37 投票
4 回答
35992 浏览
提问于 2025-04-17 12:45

我最近接手了一些用Python 2.7写的Selenium Webdriver代码。它在Ubuntu的/tmp目录下记录了大量的数据,甚至多到成了个问题。我想把这个日志功能关掉(或者至少调低一些)。

我到处查资料,但这版Selenium(2.19.0)是新版本,手册还没写好!

我发现有一个叫 set_browser_log_level(logLevel) 的方法,听起来很有希望,但要用这个方法,我需要先创建一个 selenium.selenium.selenium 对象。我之前并不需要创建这样的对象,而且它需要很多参数(比如哪个主机?哪个端口?)我并不想提供这些。

显然,我对这个事情有些误解。

有没有人能告诉我(a)怎么关掉日志,或者(b)这个selenium.selenium.selenium.selenium.selenium(我可能有点夸张了,抱歉!)想要连接的服务是什么?


相关问题: 在Selenium中,我怎么关掉日志记录? 这是一个旧版本的Selenium,我相信是通过脚本语言调用的。

4 个回答

13

当然可以!请看下面的内容:

在编程中,有时候我们需要让程序做一些特定的事情,比如在某个条件满足时才执行某段代码。这就像是给程序设定了一些规则,只有当这些规则被满足时,程序才会按照我们的要求去运行。

举个例子,想象一下你在做一道菜,只有当所有的食材都准备齐全时,你才会开始烹饪。这种情况下,你就可以把“所有食材准备齐全”看作是一个条件,只有满足这个条件,你才会开始做菜。

在代码中,我们也可以使用类似的条件语句来控制程序的执行。这样可以让我们的程序更加灵活,能够根据不同的情况做出不同的反应。

希望这个解释能帮助你更好地理解编程中的条件判断!

import logging
selenium_logger = logging.getLogger('selenium.webdriver.remote.remote_connection')
# Only display possible problems
selenium_logger.setLevel(logging.WARNING)
30

来自alecxe的回答对我有用。不过,日志里还是有一些调试信息,这些信息是来自urllib3的。这个库是被selenium引入的,跟上面的解决方案没关系。以下是我用的代码,供参考:

# Set the threshold for selenium to WARNING
from selenium.webdriver.remote.remote_connection import LOGGER as seleniumLogger
seleniumLogger.setLevel(logging.WARNING)
# Set the threshold for urllib3 to WARNING
from urllib3.connectionpool import log as urllibLogger
urllibLogger.setLevel(logging.WARNING)

如果有人知道更符合Python风格的方法来实现同样的功能,我很乐意听听。

60

这是我解决这个问题时用到的方法:

import logging
from selenium.webdriver.remote.remote_connection import LOGGER
LOGGER.setLevel(logging.WARNING)

注意:这段代码应该放在初始化webdriver之前。

希望这能帮到你。

撰写回答