org.openqa.selenium.WebDriverException: Ошибка пересылки нового сеанса не может быть найден: Capabilities {acceptInsecureCerts: true с Firefox - PullRequest
0 голосов
/ 03 сентября 2018

У меня Windows 10 - 64, Firefox 61.0.2, Java установлена. Я выполняю свои тесты с помощью selenium-grid и selenium-server-standalone-3.11.0.jar и geckodriver 21.0, но при запуске теста выдается следующая ошибка:

org.openqa.selenium.WebDriverException: Ошибка пересылки нового сеанс не может найти: Capabilities {acceptInsecureCerts: true, browserName: firefox, платформа: WINDOWS, версия: 61.0.2}

Мой код:

private void createBrowserInstance() throws MalformedURLException {
    switch (environmentHandler.getTestBrowser().toLowerCase()) {
        case "firefox":
            FirefoxOptions firefox  = new FirefoxOptions();
            firefox.setCapability("marionette", false);
            browCapab = DesiredCapabilities.firefox();
            browCapab.setBrowserName("firefox");
            browCapab.setPlatform(Platform.WINDOWS);
            browCapab.setVersion("61.0.2");

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Это сообщение об ошибке ...

org.openqa.selenium.WebDriverException: Error forwarding the new session cannot find : Capabilities {acceptInsecureCerts: true, browserName: firefox, platform: WINDOWS, version: 61.0.2}

... означает, что GeckoDriver не смог переслать новый сеанс.

Ваша основная проблема - несовместимость в используемой вами конфигурации:

  • По вашему вопросу, как вы используете:
    • selenium-server-standalone-3.11.0.jar
    • geckodriver 21.0
  • Таким образом, вы должны использовать возможность марионетка в обязательном порядке. Для достижения этого либо:

    • Вы можете оставить возможность марионетка нетронутой, поскольку по умолчанию marionette установлено на True .
    • Вы также можете указать возможность марионетка следующим образом:

      FirefoxOptions firefox_options  = new FirefoxOptions();
      firefox_options.setCapability("marionette", true);
      
  • firefox - ключевое слово / зарезервированное слово, поэтому не не используйте этот термин в своих тестах.

  • Остальная часть вашего кода выглядит хорошо.
  • Согласно черновику *1056* для редактора WebDriver W3C:
    • browserName: Если значение не является строкой, равной записи "browserName" в сопоставленных возможностях, вернуть успех с данными null.
    • browserVersion: сравнить значение с записью «browserVersion» в соответствующих возможностях, используя алгоритм сравнения, определенный реализацией. Сравнение состоит в том, чтобы принять значение, которое накладывает ограничения на версию, используя операторы «<», «<=», «>» и «> =». Если два значения не совпадают, верните успех с данными null.
    • platformName: Если значение не является строкой, равной записи "platformName" в сопоставленных возможностях, вернуть успех с данными null.
  • Соответствующее обсуждение можно найти в org.openqa.selenium.WebDriverException: Ошибка при пересылке нового сеанса не может быть найдена: Возможности
0 голосов
/ 04 сентября 2018

Error forwarding the new session cannot find - это способ, которым Grid сообщает вам, что он не может найти узел, который соответствует вашей запрашиваемой возможности.

Сетка использует следующие 4 атрибута для сопоставления возможностей [Сопоставьте запрашиваемую возможность из вашего тестового примера с фактической возможностью, которую должен предложить узел]

  • Имя браузера
  • Платформа
  • Версия
  • Имя приложения (Этот AFAIK не задокументирован, но он существует. См. здесь )

Вы не упомянули, как вы запускаете свой узел. В частности, вы не упомянули, используете ли вы файл JSON конфигурации узла или нет (этот файл конфигурации обычно используется для настройки поддерживаемых возможностей узла среди прочего). Но я предполагаю, что вы не используете один.

Когда вы запускаете узел без какой-либо дополнительной настройки, он не знает о возможности version.

Так что, возможно, он будет иметь узел, который может поддерживать firefox на windows. Но ваш тест ищет firefox version 61.0.2, работающий на windows. Это объясняет ошибку.

Чтобы устранить проблему, вы можете выполнить одно из следующих действий:

  • Удалите строку browCapab.setVersion("61.0.2"); из вашего тестового кода (или)
  • Используйте информацию о версии в файле конфигурации узла при запуске узла.

    Чтобы узнать, как работать с файлом конфигурации узла, вы можете обратиться к моему сообщению в блоге здесь

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