Nightwatch Selenium"插座挂断"

Alb*_*mec 6 java continuous-integration selenium nightwatch.js

在Chrome中运行Nightwatch测试CI.有时(在5个版本中大约一次)我在其中一个测试中遇到以下错误.在此之前的每个测试工作正常.

我有最新的Chromedriver和Selenium独立服务器.

我认为问题是Selenium服务器在请求中崩溃,我很难知道为什么.

Error retrieving a new session from the selenium server

Connection refused! Is selenium server started?
{ Error: socket hang up
    at createHangUpError (_http_client.js:254:15)
    at Socket.socketCloseListener (_http_client.js:286:23)
    at emitOne (events.js:101:20)
    at Socket.emit (events.js:188:7)
    at TCP._handle.close [as _onclose] (net.js:498:12) code: 'ECONNRESET' }
Run Code Online (Sandbox Code Playgroud)

这也是我nightwatch.json照顾硒的一部分.

 "selenium": {
    "start_process": true,
    "server_path": "scripts/Nightwatch/selenium-server-standalone-3.0.1.jar",
    "log_path": "app/E2E/reports/selenium",
    "port": 4444,
    "cli_args": {
      "webdriver.chrome.driver": "scripts/Nightwatch/chromedriver"
    }
  }
Run Code Online (Sandbox Code Playgroud)

任何想法为什么Selenium崩溃以及如何解决这个问题?

小智 5

在Codeship上有与selenium/chromedriver完全相同的问题.我尝试将硒降级到2.53.1无济于事.详细的日志记录显示没有有用的信息,只是selenium服务器突然没有在我们的测试中随机启动新的会话.

似乎有用的是在我们的测试命令中添加以下内容:

# Prevent chrome deadlock
export DBUS_SESSION_BUS_ADDRESS=/dev/null
Run Code Online (Sandbox Code Playgroud)

问题在这里描述:https: //github.com/SeleniumHQ/docker-selenium/issues/87

看起来某些docker容器存在问题,这可以解释它在CI上发生的情况,而本地工作正常.

  • 这样做之后我仍然遇到了问题,但后来意识到我没有运行xvfb-run命令无头测试```xvfb-run npm run e2e```现在正在工作 (6认同)