【问题标题】:How to suppress console error/warning/info messages when executing selenium python scripts using chrome canary使用chrome canary执行selenium python脚本时如何抑制控制台错误/警告/信息消息
【发布时间】:2017-10-14 13:11:25
【问题描述】:

我正在使用 Chrome Canary 运行 python 脚本(下面的完整脚本链接)进行硒测试。测试似乎运行良好,但是控制台上显示了许多错误/警告/信息消息。

有没有办法抑制这些消息?我努力了: chrome_options.add_argument("--silent"),但没有帮助。我无法找到正确的解决方案。感谢任何帮助。

Python 脚本:Example script provided here

Python:3.6.3 硒:3.6.0 Chrome 金丝雀:63.0.3239.5(64 位) 铬驱动程序:2.33

【问题讨论】:

  • 对我来说这不会发生。这可能是因为您使用的是金丝雀构建。尝试使用chrome_options.add_argument("--disable-logging")
  • 试过这个论点,但还是一样。我同意这是因为金丝雀构建,因为正常的 chrome 构建工作正常,但是,我正在尝试 selenium 和 headless chrome。感谢@TarunLalwani 的回复。

标签: python-3.x google-chrome selenium selenium-chromedriver


【解决方案1】:

试试options.add_argument('log-level=3')

log-level: 
Sets the minimum log level.
Valid values are from 0 to 3: 

    INFO = 0, 
    WARNING = 1, 
    LOG_ERROR = 2, 
    LOG_FATAL = 3.

default is 0.

【讨论】:

  • 在使用 Protractor 和 headless chrome(win64 上的版本 65)的 Node.js 中遇到了同样的问题。设置 log-level=2 为我解决了这个问题。
  • 这种方法明显减少了日志。但是,仍然打印了一些日志,尽管它们不影响工作流程。日志之一:[0817/100109.981:ERROR:socket_manager.cc(128)] Failed to resolve address for stun.services.mozilla.com., errorcode: -105
【解决方案2】:

如果“--log-level”对您不起作用(从 75.0.3770.100 开始对我不起作用),那么应该:

options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
driver = webdriver.Chrome(executable_path='<path-to-chrome>', options=options)

见:

https://bugs.chromium.org/p/chromedriver/issues/detail?id=2907#c3

Python selenium: DevTools listening on ws://127.0.0.1

【讨论】:

    【解决方案3】:

    在 Python/Chrome 中为我工作...

    from selenium.webdriver.chrome.options import Options
    
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--log-level=3')
    

    【讨论】:

    • 但是如果我们要构建脚本以跨不同的驱动程序进行扩展呢?
    【解决方案4】:

    您可以通过以下链接获得帮助。

    List of Chromium Command Line Switches

    "--log-level" 设置最低日志级别。有效值为 0 到 3:INFO = 0、WARNING = 1、LOG_ERROR = 2、LOG_FATAL = 3。

    【讨论】:

      【解决方案5】:

      我刚刚测试了这个,它适用于我(C#):

          ChromeOptions options = new ChromeOptions();
          options.AddArguments("--headless", "--log-level=3");
          RemoteWebDriver driver = new ChromeDriver(options);
      

      【讨论】:

        【解决方案6】:
        import os
        os.environ['WDM_LOG_LEVEL'] = '0'
        

        该代码隐藏了from webdriver_manager.chrome import ChromeDriverManager 控制台输出的控制台输出

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-30
          • 2013-03-18
          • 1970-01-01
          • 1970-01-01
          • 2020-10-08
          • 2022-10-15
          相关资源
          最近更新 更多