it-swarm.com.ru

Как отключить ведение журнала Firefox в Selenium с помощью Geckodriver?

Я использую:

  • firefox версия 50.1.0
  • версия geckodriver 0.11.1
  • Selenium-Java 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.xml, но нет log4j.properties или log4j.xml, и я его вообще не использую.


Для пояснения: когда я говорю «ведение журнала», я имею в виду вывод консоли в IntelliJ IDEA. Я использую Java.

10
PizzaFrog

Чтобы не видеть журналы в консоли, вы можете использовать следующее:

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();
10
Michael Medina

Вы можете определить желаемый уровень ведения журнала через командную строку в 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 из Selenium, у вас есть два варианта:

  • Запустите geckodriver.exe отдельно с пользовательскими аргументами и используйте его из Selenium через RemoteWebDriver
  • Создайте пользовательскую оболочку, чтобы добавить дополнительные параметры в geckodriver.exe

Пример файла летучей мыши обертки geckodriver (для Windows):

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

В Java вы можете определить путь к исполняемому файлу geckodriver через webdriver.gecko.driver системное свойство:

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

Просто сделай это

System.setProperty(FirefoxDriver.SystemProperty.DRIVER_USE_MARIONETTE,"true");
System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE,"/dev/null");
driver = new FirefoxDriver();
3
Akash

Для Selenium 3.14.0 это работает 

System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE,"/dev/null");
0
Shantonu

Это версия Linux для ответа @voji выше. Обратите внимание, как я сказал выше в комментарии. Я не верю, что --log fatal что-то делает, по крайней мере, в Linux. Однако перенаправление на NULL работает достаточно хорошо для меня 

"webdriver.gecko.driver": "/path-to-driver/geckodriver.sh

имя файла: geckodriver.sh (исполняемый файл)

#! /bin/bash
echo " ARGS: " [email protected]
geckodriver --log fatal "[email protected]" > /dev/null 2>&1
0
mancocapac