是否可以使用晚于52的Firefox运行selenium 3.x测试,将“marionette”功能设置为false(不使用GeckoDriver)?

问题描述 投票:0回答:1

有了selenium 3.13.0,我无法对Firefox 60 ESR进行测试。在创建FirefoxDriver的实例时,它会抛出超时异常。

它在Firefox 52 ESR上运行良好,直到我更新到60 ESR。我怀疑Firefox 60需要GeckoDriver并且与使用内置于Selenium服务器的驱动程序的“遗留”方法不兼容。

所以,问题是:是否可以避免使用GeckoDriver,使用Firefox 60?

这是代码示例(options.setCapability(“marionette”,false))

private WebDriver createFirefoxDriver() {
    FirefoxOptions options = new FirefoxOptions();
    // marionette = false to NOT use geckodriver
    options.setCapability("marionette", false);

    options.addPreference("services.sync.prefs.sync.browser.download.useDownloadDir", false);
    options.addPreference("browser.download.manager.showWhenStarting", false);
    options.addPreference("browser.download.panel.shown", false);
    options.addPreference("browser.download.manager.alertOnEXEOpen", false);
    options.addPreference("browser.download.folderList", 2);
    options.addPreference("browser.download.manager.showAlertOnComplete", false);
    options.addPreference("browser.helperApps.neverAsk.saveToDisk",
            "application/json, application/zip, application/x-zip, application/x-zip-compressed, " +
                    "application/download, application/octet-stream");
    options.addPreference("browser.download.useToolkitUI", true);
    options.addPreference("dom.disable_window_flip", false);
    options.addPreference("browser.download.dir", Paths.get(EnvironmentProperties.get().sdaPathToTestData).toAbsolutePath().toString());

    WebDriver webDriver = new FirefoxDriver(options);
    webDriver.manage().window().maximize();
    return webDriver;
}
selenium firefox automation webdriver geckodriver
1个回答
1
投票

答案是,这是不可能的。您可以使用的最新版本是Firefox 52.9,之后不支持Legacy驱动程序,Firefox 60 ESR不支持传统驱动程序。

这真是一个令人遗憾的消息,因为我仍然在某些地方发现了壁虎的问题,但传统的驱动程序我从未发现过这样的问题。我从传统驱动程序中遗漏的主要问题是可见性检查,我实际上已经在geckodriver中提出了问题,但他们还没有添加。开始使用geckodriver,它不能与传统驱动程序等效,但尝试处理程序中缺少的部分。

我最好的建议是使用WATIR,它是selenium ruby​​绑定的包装,如果你使用WATIR,你真的不必担心你使用哪个驱动程序,因为它处理所有问题。 Chrome没有给出一些例外类,但firefox正在提供,在这种情况下你可能会发现一些差异,但除此之外没有其他差异。

© www.soinside.com 2019 - 2024. All rights reserved.