我正在使用Nightwatch.js在我们的网络应用程序上构建/运行端到端测试,作为构建过程的一部分,我们希望将它与Jenkins集成。在我的本地计算机上,我可以在所有三个浏览器(Firefox,Safari,Chrome)上同时运行我的测试,没有任何问题。我也可以在没有问题的个人浏览器上运行。我有正确的和最新版本的selenium驱动程序,并在我的nightwatch.json文件中指向它们。但是,出于某种原因,当新的Jenkins构建进入时,我无法在运行这些测试的专用机器上启动Safari。一切都在机器上设置的方式与我的机器完全相同,但是我不断收到错误
Error retrieving a new session from the selenium server
Failed to connect to SafariDriver after 10066ms
当发生这种情况时,Chrome和Firefox都可以正常加载,只有Safari有问题。我们确保为Safari下载了最新版本的独立selenium驱动程序,为了确保我再次这样做了。我还确保检查是否有另一个selenium服务器运行的实例,但从来没有这种情况
我的nightwatch.json文件看起来像这样......
{
"src_folders" : ["test"],
"output_folder" : "reports",
"custom_commands_path" : "node_modules/nightwatch-custom-commands- assertions/js/commands",
"custom_assertions_path" : "node_modules/nightwatch-custom-commands-assertions/js/assertions",
"page_objects_path" : "",
"globals_path" : "",
"selenium" : {
"start_process" : true,
"server_path" : "lib/selenium-server-standalone-2.53.0.jar",
"log_path" : "",
"host" : "127.0.0.1",
"port" : 4444,
"cli_args" : {
"webdriver.chrome.driver" : "lib/chromedriver",
"webdriver.safari.driver" : "lib/selenium-server-standalone-2.53.0.jar"
}
},
"test_settings" : {
"firefox" : {
"launch_url" : "http://localhost",
"selenium_port" : 4444,
"selenium_host" : "localhost",
"silent": true,
"screenshots" : {
"enabled" : false,
"path" : "./screenshots"
},
"desiredCapabilities": {
"browserName": "firefox",
"javascriptEnabled": true,
"acceptSslCerts": true
},
"end_session_on_fail": false,
"skip_testcase_on_fail": false
},
"chrome" : {
"launch_url" : "http://localhost",
"selenium_port" : 4444,
"selenium_host" : "localhost",
"silent": true,
"screenshots" : {
"enabled" : false,
"path" : "./screenshots"
},
"desiredCapabilities": {
"browserName": "chrome",
"javascriptEnabled": true,
"acceptSslCerts": true
},
"end_session_on_fail": false,
"skip_testcase_on_fail": false
},
"safari" : {
"launch_url" : "http://localhost",
"selenium_port" : 4444,
"selenium_host" : "localhost",
"silent": true,
"screenshots" : {
"enabled" : false,
"path" : "./screenshots"
},
"desiredCapabilities" : {
"browserName" : "safari",
"javascriptEnabled" : true,
"acceptSslCerts" : true
},
"end_session_on_fail": false,
"skip_testcase_on_fail": false
}
}
}
如果有人对这可能发生的原因有任何见解,我会很感激。感谢
答案 0 :(得分:3)
您必须手动安装SafariDriver。可以找到SafariDriver here。
要检查是否启用了safariDriver,请转到Safari>偏好设置>扩展程序>此处启用webDriver扩展程序。它应该默认启用,但以防万一你需要调试。感谢
答案 1 :(得分:0)
UPDATE *****
原来有一个Safari的扩展,需要安装才能使selenium驱动程序正常工作。