我在用:
我试过了
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);
这些方法都没有做任何事情来阻止记录。如果这有助于某种方式,这是控制台输出:
对于那些想知道,我在我的pom.xml
有log4j 1.2.17,但没有log4j.properties
或log4j.xml
,我根本不使用它。
澄清一下:当我说日志记录时,我指的是IntelliJ IDEA中的控制台输出。我正在使用Java。
要在控制台中看不到日志,可以使用以下命令:
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();
您可以在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]
如果你使用selenium的geckodriver,你有两个选择:
示例geckodriver包装器bat文件(用于windows):
@ECHO OFF
ECHO Starting geckodriver: %0 %*
.\GeckoDriver\geckodriver.exe --log fatal %* > NUL 2>&1
在java中,您可以通过webdriver.gecko.driver系统属性定义geckodriver可执行路径:
System.setProperty("webdriver.gecko.driver", "c:/selenium/geckodriver/gdrvwrapper.bat");
就这样做吧
System.setProperty(FirefoxDriver.SystemProperty.DRIVER_USE_MARIONETTE,"true");
System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE,"/dev/null");
driver = new FirefoxDriver();
这是上面@voji回答的linux版本。注意,正如我在评论中所述。我不相信--log致命做任何事情,至少在Linux上没有。但是重定向到NULL对我来说效果很好
"webdriver.gecko.driver": "/path-to-driver/geckodriver.sh
文件名:geckodriver.sh(可执行文件)
#! /bin/bash
echo " ARGS: " $@
geckodriver --log fatal "$@" > /dev/null 2>&1
对于selenium 3.14.0,这是有效的
System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE,"/dev/null");
import org.openqa.selenium.firefox.FirefoxDriver
System.setProperty(
"webdriver.gecko.driver",
"C:\Users\geckodriver-v0.22.0-win64\geckodriver.exe"
)
System.setProperty(
FirefoxDriver.SystemProperty.DRIVER_USE_MARIONETTE,
"true"
)
System.setProperty(
FirefoxDriver.SystemProperty.BROWSER_LOGFILE,
"d:\eclipse\scala_log.txt"
)
GeckoDriverService gecko = new GeckoDriverService(new File("c:/selenium/geckodriver.exe"), 4444, ImmutableList.of("--log=fatal"), ImmutableMap.of());
gecko.sendOutputTo(new FileOutputStream("gecko_log.txt"));
gecko.start();
FirefoxOptions opts = new FirefoxOptions().setLogLevel(Level.OFF);
DesiredCapabilities capabilities = opts.addTo(DesiredCapabilities.firefox());
capabilities.setCapability("marionette", true);
driver = new FirefoxDriver(gecko, capabilities);