如何使用Geckodriver禁用Selenium中的Firefox日志记录?

2022-09-03 12:32:51

我正在使用:

  • 火狐版本 50.1.0
  • 壁虎驱动程序版本 0.11.1
  • 硒-爪哇 3.0.1

我试过

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("webdriver.log.browser.ignore", true);
profile.setPreference("webdriver.log.driver.ignore", true);
profile.setPreference("webdriver.log.profiler.ignore", true);
FirefoxDriver driver = new FirefoxDriver();

LoggingPreferences preferences = new LoggingPreferences();
preferences.enable(LogType.BROWSER, Level.OFF);
preferences.enable(LogType.CLIENT, Level.OFF);
preferences.enable(LogType.DRIVER, Level.OFF);
preferences.enable(LogType.PERFORMANCE, Level.OFF);
preferences.enable(LogType.SERVER, Level.OFF);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability(CapabilityType.LOGGING_PREFS, preferences);
FirefoxDriver driver = new FirefoxDriver(capabilities);

这两种方法都不执行任何操作来停止日志记录。如果以某种方式有所帮助,则为控制台输出:

对于那些想知道的人,我有log4j 1.2.17在我的但没有或,我根本不使用它。pom.xmllog4j.propertieslog4j.xml


澄清一下:当我说日志记录时,我指的是IntelliJ IDEA中的控制台输出。我正在使用Java。


答案 1

要在控制台中看不到日志,您可以使用以下命令:

System.setProperty("webdriver.gecko.driver","src/main/resources/drivers/geckodriver.exe");
System.setProperty(FirefoxDriver.SystemProperty.DRIVER_USE_MARIONETTE,"true");
System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE,"/dev/null");

return new FirefoxDriver();

答案 2

您可以在 geckodriver 中通过命令行定义所需的日志记录级别.exe。

geckodriver.exe -help    
USAGE:
    geckodriver.exe [FLAGS] [OPTIONS]   
...
OPTIONS:
        --log <LEVEL>
            Set Gecko log level [values: fatal, error, warn, info, config,
            debug, trace]

如果您使用硒的壁虎司机,您有两种选择:

  • 使用自定义参数启动geckodriver.exe,并从Selenium通过RemoteWebDriver使用它
  • 创建自定义包装器,向壁虎驱动程序添加额外的参数.exe

示例 geckodriver wrapper bat file (for windows):

@ECHO OFF
ECHO Starting geckodriver: %0 %*
.\GeckoDriver\geckodriver.exe --log fatal %* > NUL 2>&1

在java中,您可以定义geckodriver可执行路径,over webdriver.gecko.driver system属性:

System.setProperty("webdriver.gecko.driver", "c:/selenium/geckodriver/gdrvwrapper.bat");

推荐