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
このロギングをオフにするにはどうすればよいですか?
次のコードを試してみましたが、機能しませんでした。 Selenium 3.0
のbug
のようです
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();
ログを無効にするには、次のようなシステムプロパティを介して/ dev/nullに送信します。
System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE,"/dev/null");
return new FirefoxDriver();
一部で機能した1つのオプションが提案されています here で、バッチファイルを使用してコマンドライン引数を実行可能ファイルに渡します。残念ながら、これはしばしば余分なプロセス(geckodriver.exe、cmd.exe)を開いたままにし、この次の問題に対する解決策はまだ提案されていません...
Geckoドライバーのログが必要ない場合は、この行を前に追加するだけです。
System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE、 "false");
そして、この部分から始めます:
driver= new FirefoxDriver();
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)
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);