无法使用Nightwatch启动Safari浏览器

时间:2016-04-22 23:26:05

标签: selenium safari nightwatch.js

我正在使用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
       }
    }
 }

如果有人对这可能发生的原因有任何见解,我会很感激。感谢

2 个答案:

答案 0 :(得分:3)

您必须手动安装SafariDriver。可以找到SafariDriver here

要检查是否启用了safariDriver,请转到Safari>偏好设置>扩展程序>此处启用webDriver扩展程序。它应该默认启用,但以防万一你需要调试。感谢

答案 1 :(得分:0)

UPDATE *****

原来有一个Safari的扩展,需要安装才能使selenium驱动程序正常工作。