如何关闭硒3中的木偶/壁虎驱动程序日志

时间:2017-01-17 12:06:36

标签: selenium selenium-webdriver gecko geckodriver

我需要关闭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

如何关闭此日志记录?

7 个答案:

答案 0 :(得分:21)

您可以使用以下代码行来显示牵线木偶日志:

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

答案 1 :(得分:2)

尝试了以下代码,但没有成功。看起来像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();

答案 2 :(得分:2)

提出了一些适用于某些选项的选项here,并使用批处理文件将命令行参数传递给可执行文件。不幸的是,这通常会使额外的进程保持打开状态(geckodriver.exe,cmd.exe),并且尚未提出解决此下一个问题的解决方案......

答案 3 :(得分:1)

  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);

答案 4 :(得分:0)

如果您不需要壁虎驱动程序日志,可以简单地在以下行添加:

System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE,“ false”);

然后从这一部分开始:

driver = new FirefoxDriver();

答案 5 :(得分:0)

在Windows和Linux上有效的解决方案。

var elements = document.getElementsByClassName("hiit");
for(var i =0; i < elements.length; i++) {
    var element = elements[i];
    element.style.display = 'none';
}

答案 6 :(得分:0)

这可能有点棘手,但可以快速完成工作。既然您知道文件的确切位置,并且在Linux上运行代码,则只需将CD插入该目录,然后

rm geckodriver.log
ln -s /dev/null geckodriver.log