无法使用 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”参数.
这是我的 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”参数.