Как отключить журналы драйвера Marionette/gecko в селене 3

Мне нужно отключить ведение журнала Marionette/GeckoDriver; есть ли способ сделать это? Я много искал, но я не получил правильного ответа. Журналы INFO были:

 1484653905833  geckodriver INFO    Listening on 127.0.0.1:15106
    Jan 17, 2017 5:21:46 PM org.openqa.selenium.remote.ProtocolHandshake createSession
    INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
    1484653906715   mozprofile::profile INFO    Using profile path C:\Users\vtiger\AppData\Local\Temp\3\rust_mozprofile.7d2LEwDKoE8J
    1484653906720   geckodriver::marionette INFO    Starting browser C:\Program Files\Mozilla Firefox\firefox.exe
    1484653906731   geckodriver::marionette INFO    Connecting to Marionette on localhost:58602
    1484653908388   addons.manager  DEBUG   Application has been upgraded
    1484653908843   addons.manager  DEBUG   Loaded provider scope for resource://gre/modules/addons/XPIProvider.jsm: ["XPIProvider"]
    1484653908846   addons.manager  DEBUG   Loaded provider scope for resource://gre/modules/LightweightThemeManager.jsm: ["LightweightThemeManager"]
    1484653908852   addons.manager  DEBUG   Loaded provider scope for resource://gre/modules/addons/GMPProvider.jsm
    1484653908855   addons.manager  DEBUG   Loaded provider scope for resource://gre/modules/addons/PluginProvider.jsm
    1484653908857   addons.manager  DEBUG   Starting provider: XPIProvider
    1484653908857   addons.xpi  DEBUG   startup
    1484653908858   addons.xpi  INFO    SystemAddonInstallLocation directory

Как отключить это ведение журнала?


person Suresh Kumar    schedule 17.01.2017    source источник
comment
Возможный дубликат Как отключить ведение журнала Firefox в Selenium с помощью Геккодрайвер?   -  person lony    schedule 25.07.2018


Ответы (5)


Пробовал следующий код, но не работал. Похоже на bug в selenium 3.0

    LoggingPreferences pref = new LoggingPreferences();
    pref.enable(LogType.BROWSER, Level.OFF);
    pref.enable(LogType.CLIENT, Level.OFF);
    pref.enable(LogType.DRIVER, Level.OFF);
    pref.enable(LogType.PERFORMANCE, Level.OFF);
    pref.enable(LogType.PROFILER, Level.OFF);
    pref.enable(LogType.SERVER, Level.OFF);


    DesiredCapabilities desiredCapabilities = DesiredCapabilities.firefox();
    desiredCapabilities.setCapability(CapabilityType.LOGGING_PREFS, pref);

    WebDriver driver = new FirefoxDriver(desiredCapabilities);

    driver.get("https://www.google.com/");
    driver.findElement(By.id("lst-ib")).sendKeys("something");
    Thread.sleep(2000);
    driver.quit();
person Naveen Kumar R B    schedule 17.01.2017
comment
Даже я пробовал то же самое. Я думаю, что это ошибка в драйвере gecko, буду ждать следующего выпуска. - person Suresh Kumar; 19.01.2017
comment
Я предполагаю, что это то же самое: firefoxOptions.setLogLevel(Level.OFF); возможности.setCapability(moz:firefoxOptions, firefoxOptions); - person yucer; 03.08.2017
comment
Есть отчет об ошибке? Это было исправлено? - person Jonathan; 23.09.2018

Вы можете отключить журналы, отправив их в /dev/null через системное свойство следующим образом:

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

return new FirefoxDriver();
person Michael Medina    schedule 19.09.2017
comment
Это сработало для меня, даже с пропуском строки DRIVER_USE_MARIONETTE ???? - person skia.heliou; 05.04.2018
comment
Используя arquillian, мне нужно было только последнее свойство - person onderbewustzijn; 13.04.2018
comment
Как мне установить уровень журнала warn? - person Jonathan; 23.09.2018

Рабочее решение для Windows и Linux.

# python 3

# windows
PATH_TO_DEV_NULL = 'nul'
FIREFOX_DRIVER_PATH = 'D:\\path\\to\\geckodriver.exe'

# linux
PATH_TO_DEV_NULL = '/dev/null'
FIREFOX_DRIVER_PATH = '/path/to/geckodriver'

# start browser
driver = webdriver.Firefox(executable_path=FIREFOX_DRIVER_PATH,
                           service_log_path=PATH_TO_DEV_NULL)

person Михаил Чеботарев    schedule 10.07.2019

Один вариант, который сработал для некоторых, предлагается здесь и использует пакетный файл для передачи аргументов командной строки в исполняемый файл. К сожалению, это часто оставляет открытыми дополнительные процессы (geckodriver.exe, cmd.exe), и решение этой следующей проблемы пока не предложено...

person ice1080    schedule 03.07.2017

Это может быть немного хакерским, но это может быстро выполнить работу. Учитывая, что вы знаете точное местоположение вашего файла и запускаете свой код в Linux, вы можете просто перейти в этот каталог и

rm geckodriver.log
ln -s /dev/null geckodriver.log
person teesid    schedule 17.06.2020