Селен chrome соединение отказано во время тестового прогона - PullRequest
1 голос
/ 03 февраля 2020

Иногда, но не всегда, при выполнении наших сквозных тестов мы получаем исключение ConnectRefused. Это происходит только с chrome, но не с firefox. Для нас это происходит во время теста, т. Е. После того, как тест некоторое время работал правильно.

Мы используем docker image selenium/standalone-chrome:3.141.59-vanadium. (Мы понизили -zinc из-за другой проблемы.) Образ docker запускается как часть docker -компонента, который также содержит наше приложение / базу данных.

Сам тест выполняется вне docker -композиции с использованием JUnit5 и Selenium java org.seleniumhq.selenium:selenium-java:jar:3.141.59:compile.

Все вместе выполняется на GitLab runner с использованием исполнителя docker. Это означает, что вокруг всего есть еще один слой docker, но это может быть неактуально.

Фактическое исключение:

org.openqa.selenium.WebDriverException: java.net.ConnectException: Connection refused (Connection refused)
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'runner-_f3Cf_kC-project-44-concurrent-0', ip: '172.17.0.3', os.name: 'Linux', os.arch: 'amd64', os.version: '4.9.0-8-amd64', java.version: '11.0.5'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 77.0.3865.75, chrome: {chromedriverVersion: 77.0.3865.40 (f484704e052e0..., userDataDir: /tmp/.com.google.Chrome.5sVOki}, goog:chromeOptions: {debuggerAddress: localhost:37949}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webdriver.remote.sessionid: 4591df261c617729ec95f592ed6...}
Session ID: 4591df261c617729ec95f592ed69756b
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
    at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:285)
    at org.openqa.selenium.remote.RemoteWebElement.getLocation(RemoteWebElement.java:337)
    [...]

Дальнейшей причины нет, java.net.ConnectException декодируется из ответа, полученного RemoteWebDriver от автономного процесса селен в контейнере. Я предполагаю, что это означает, что автономный селен не смог достичь chrome или chrome -драйвера.

Журналы контейнера, к сожалению, не содержат ничего полезного, в частности, нет исключения ConnectException. Повышение уровня журнала для отладки для селена и / или хроматографа больше не давало информации.

В идеале я ищу решение, чтобы решить эту проблему, но любые шаги в этом направлении приветствуются.

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