无法使用 Linux 在 chrome 上执行守夜测试

Unable to execute nightwatch tests on chrome using Linux

这是我的 nightwatch.json 文件中的问题:

 "selenium" : {
   "start_process" : true,
   "server_path" : "lib/selenium-server-standalone.jar",
   "log_path" : "test_logs"
 },

 "test_settings" : {
   "jenkins" : {
     "launch_url" : "url not disclosed",
     "selenium_port"  : 4444,
     "selenium_host"  : "jenkins.undisclosed-cloud.com",
     "cli_args" : {
       "webdriver.chrome.driver" : "/usr/local/bin/chromedriver"
     },
     "desiredCapabilities": {
       "browserName": "chrome",
       "javascriptEnabled": true,
       "acceptSslCerts": true,
       "platform" : "LINUX"
     }
   }
 }

如果我将 browserName 更改为 firefox,则测试在指定的 linux 服务器上运行良好,该服务器位于 DOCKER CONTAINER[=30 上的 运行 =].

但是当我选择 chrome 时,出现错误:

Connection refused! Is selenium server started?

我以前在我的本地机器上看到过这个错误,并设法通过将 chrome 驱动程序添加到路径来修复它。我认为在 linux 服务器上会出现同样的问题,但没有解决。我继续进入 linux 框并验证我可以直接在

中启动 chrome 驱动程序
"/usr/local/bin/chromedriver" 

顺便说一下,我已经确认我在 64 位 linux 机器上并且符号链接都已设置。

Linux version: Linux 3.11.0-26-generic  |  v2.43.1  |  r5163bce

运行 测试后的错误日志 --verbose

INFO Request: POST /wd/hub/session 
 - data:  {"desiredCapabilities":    {"browserName":"chrome","javascriptEnabled":true,"acceptSslCerts":true,"platform":    "LINUX","name":"Free Resource Download Test"}} 
 - headers:  {"Content-Type":"application/json; charset=utf-8","Content-    Length":151}
ERROR Response 500 POST /wd/hub/session{ status: 13,
  sessionId: null,
  value: 
   { message: 'chrome not reachable\n 

所以,这是一个 docker 容器,问题出在 Chrome&Docker。

您有 2 个选项,运行 将“--privileged”参数添加到 Docker 或 运行 Chrome 添加“--no-sandbox”参数.