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?
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();
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();
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 ...
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 ();
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);