org.openqa.selenium.WebDriverException: сеанс [нулевой] недоступен и не входит в число последних 1000 завершенных сеансов, использующих SeleniumGrid в Docker - PullRequest
0 голосов
/ 31 января 2020

Я использую селеновую сетку, к которой подключены 2 узла. Но когда я пытаюсь запустить тестовый скрипт (. java), он выдает ошибку:

Exception in thread "Thread-23" org.openqa.selenium.WebDriverException: Session [null] not available and is not among the last 1000 terminated sessions.
Active sessions are[ext. key 3e5f8fb2ae3b0c5cddc8817f80eb8fe1]
Command duration or timeout: 92 milliseconds
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'

В клиенте VN C открывается браузер chrome, но URL не загружается и выдается ошибка.

Примечание: скрипт запускается из другого docker контейнера с использованием maven.

Когда я запускаю скрипт как приложение java, он работает нормально, но в docker я получаю ошибку. **

1 Ответ

0 голосов
/ 31 января 2020

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

Exception in thread "Thread-23" org.openqa.selenium.WebDriverException: Session [null] not available and is not among the last 1000 terminated sessions.
Active sessions are[ext. key 3e5f8fb2ae3b0c5cddc8817f80eb8fe1]
Command duration or timeout: 92 milliseconds
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'

... означает, что узлу Selenium Grid не удалось установить связь с Selenium Grid Hub .


Deep Dive

Эта ошибка определяется в ActiveTestSessions. java и определяется как:

public TestSession getExistingSession(ExternalSessionKey externalkey) {
    TestSession sessionByExternalKey = findSessionByExternalKey(externalkey);
    if (sessionByExternalKey == null) {
      SessionTerminationReason sessionTerminationReason = reasons.get(externalkey);
      String keyId = externalkey != null ? externalkey.getKey() : "(null externalkey)";
      if (sessionTerminationReason != null) {
          String msg = "Session [" + keyId + "] was terminated due to " + sessionTerminationReason;
          log.fine(msg);
          throw new GridException(msg);
      } else {
          String msg = "Session [" + keyId + "] not available and is not among the last 1000 terminated sessions.\n"
          + "Active sessions are" + this.unmodifiableSet();
          log.fine(msg);
          throw new GridException(msg);
      }
    }
    return sessionByExternalKey;
}

Согласно следующему обсуждения:

Эта ошибка возникает, когда:

  • Узел сетки селена , Узел сетки селена и Клиентский процесс инициируется / порождается из различных версий из Selenium клиента.

Решение

Убедитесь, что Selenium Grid Hub , Selenium Grid Node и Client Process все они используют одну и ту же версию Selenium client, т.е. Selenium v3.141.59


Обновление 1

При нормальных обстоятельствах вы должны были наблюдать Selenium Webdriver + Java - Затмение: java. lang.NoClassDefFoundError в случае наличия нескольких версий одной и той же банки. Немного более подробной информации о вашей тестовой архитектуре помогло бы нам отладить проблему лучше. Возможно, вам нужно очистить следующим образом:

  • mvn clean
  • mvn install
  • или mvn clean install
  • mvn test

Обновление 2

В качестве последнего средства вы можете удалить MAVEN_HOME т.е. ~/.m2 и заново запустить процесс сборки.

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