硒铬连接在测试运行期间被拒绝

时间:2020-02-03 11:38:42

标签: selenium selenium-chromedriver

有时但并非总是如此,在运行端到端测试时,我们会收到一个ConnectRefused异常。这仅适用于chrome,不适用于Firefox。 对我们来说,这是在测试期间 发生的,即测试正确运行了一段时间之后。

我们正在使用docker映像selenium/standalone-chrome:3.141.59-vanadium。 (由于另一个问题,我们从-zinc降级。) docker映像作为docker-compose的一部分运行,它还包含我们的应用程序/数据库。

使用JUnit5和Selenium java org.seleniumhq.selenium:selenium-java:jar:3.141.59:compile在docker-compose外部执行测试本身。

一切都使用docker executor在GitLab运行程序上运行。这意味着在所有内容周围都有另一个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。增加用于调试硒和/或chromedriver的日志级别不会产生更多信息。

理想情况下,我正在寻找一种解决此问题的解决方案,但是朝此方向采取的任何步骤都值得赞赏。

0 个答案:

没有答案