Можно ли запустить тесты selenium 3.x с Firefox позже 52, если для параметра «марионетка» установлено значение false (НЕ с использованием GeckoDriver)? - PullRequest
0 голосов
/ 03 июля 2018

Имея селен 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;
}

1 Ответ

0 голосов
/ 03 июля 2018

Ответ: это невозможно. Последней версией, которую вы можете использовать, является Firefox 52.9, после этого не поддерживается драйвер Legacy, Firefox 60 ESR не поддерживает устаревший драйвер.

Это действительно печальная новость, потому что я до сих пор нахожу проблему с гекконами в некоторых местах, но унаследованный драйвер никогда не обнаруживал такой проблемы. Главная проблема, которую я пропустил в унаследованном драйвере, - это проверка видимости, на самом деле я поднял эту проблему в geckodriver, но они еще не добавлены. Начните использовать geckodriver, который не может быть эквивалентен устаревшему драйверу, но попробуйте обработать недостающую часть из вашей программы.

Мой лучший совет - использовать WATIR, который является оберткой для привязки к селеновому рубину, если вы используете WATIR, вам действительно не нужно беспокоиться о том, какой драйвер вы используете, потому что он справляется со всеми проблемами. Есть некоторые классы исключений, которые Chrome не предоставляет, но Firefox предлагает, в таких условиях вы можете найти некоторые различия, но кроме этого нет никаких других отличий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...