web-dev-qa-db-fra.com

Comment désactiver les journaux du pilote Marionette / gecko dans Selenium 3

J'ai besoin de désactiver l'enregistrement de Marionette/GeckoDriver; existe-t-il un moyen de le faire? J'ai beaucoup cherché, mais je n'obtiens pas la bonne réponse. Les journaux INFO étaient:

 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

Comment désactiver cette journalisation?

14
Suresh Kumar

J'ai essayé le code suivant, mais cela n'a pas fonctionné. On dirait un bug dans 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();
2
Naveen Kumar R B

Vous pouvez désactiver les journaux en les envoyant à/dev/null via une propriété système comme ceci:

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

return new FirefoxDriver();
23
Michael Medina

Une option qui a fonctionné pour certains est proposée ici , et utilise un fichier batch pour passer des arguments de ligne de commande à l'exécutable. Malheureusement, cela laisse souvent des processus supplémentaires ouverts (geckodriver.exe, cmd.exe) et aucune solution à ce problème suivant n'a été proposée pour l'instant ...

2
ice1080

Si vous n'avez pas besoin des journaux du pilote gecko, vous pouvez simplement ajouter cette ligne avant:

System.setProperty (FirefoxDriver.SystemProperty.BROWSER_LOGFILE, "false");

puis commencez par cette partie:

pilote = nouveau FirefoxDriver ();

2
ASHWIN NAYAK

Solution de travail sur Windows et 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)

  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);
  FirefoxDriver driver = new FirefoxDriver(gecko, capabilities);
1
Arun VC