如何使用firebug启动selenium firefox webdriver时自动关闭firebug选项卡?

时间:2016-09-19 16:17:35

标签: selenium selenium-webdriver selenium-firefoxdriver

我在启动firefox驱动程序时已经包含了firebug,并且它与最新的selenium web驱动程序3.0一起工作得非常好,但同时每次启动浏览器时它也会打开新的firebug选项卡。

正如代码所说,我已经包含了firebug文件,并在创建的配置文件中添加了此扩展名。有没有办法在启动浏览器后自动关闭firebug选项卡?如果没有自动方式,那么我需要使用tweak来关闭名为" Firebug"的窗口。正确?

代码:

File file = new File("./firebug-2.0.17-fx.xpi");
System.setProperty("webdriver.gecko.driver", config.getStringProperty("geckodriver.path"));
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
FirefoxProfile profile = new FirefoxProfile();
profile.addExtension(file);
capabilities.setCapability(FirefoxDriver.PROFILE, profile);
capabilities.setCapability("marionette", true);
webDriver = new FirefoxDriver(capabilities);

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以设置" showFirstRunPage"标记为" false"在你的porfile中。

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("extensions.firebug.showFirstRunPage", false);

以下是您可以设置的所有firebug首选项的链接。 Firebug Preferences

另一个解决方案是设置" currentVersion"这样的大数字。

profile.setPreference("extensions.firebug.currentVersion", "999");

我更喜欢第一个;)

答案 1 :(得分:0)

我一直在寻找自动关闭Firebug窗口,但我认为这是不可能的,因此在启动带有firebug功能的Firebox浏览器之后发布了处理打开窗口的答案,遗憾的是,由于此问题,您需要处理额外的代码行:)< / p>

在解决方案下,它工作正常,只需使用如下:

工作代码:

File file = new File("./firebug-2.0.17-fx.xpi");
System.setProperty("webdriver.gecko.driver", config.getStringProperty("geckodriver.path"));
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
FirefoxProfile profile = new FirefoxProfile();
profile.addExtension(file);
capabilities.setCapability(FirefoxDriver.PROFILE, profile);
capabilities.setCapability("marionette", true);
webDriver = new FirefoxDriver(capabilities);

// Close the firebug window
Thread.sleep(4000); // Firebug window takes time to open it
Set <String> windows = webDriver.getWindowHandles();
String mainwindow = webDriver.getWindowHandle();

for (String handle: windows) {
    webDriver.switchTo().window(handle);
    if (!handle.equals(mainwindow)) {
        webDriver.close();
    }
}
webDriver.switchTo().window(mainwindow);