我在启动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);
答案 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);