守夜人 - 使用chromedriver

时间:2015-05-22 15:57:47

标签: selenium-chromedriver nightwatch.js

所以我在堆栈here上看到了一个类似的问题,但它没有接受的答案,也没有向我提供我需要的信息..

我正在尝试使用&#39; chromedriver&#39;因为&#39; selenium-webdriver&#39;需要FF版本<= 28。

到目前为止我做了什么。

  • nightwatch.js测试在FF中正常运行
  • 将chromedriver(npm install chromedriver -g)和npm install chromedriver下载到我的守夜人项目目录中
  • 转到nightwatch/bin/nightwatch.json并编辑了以下代码

     "selenium" : {
    "start_process" : false,
    "server_path" : "",
    "log_path" : "",
    "host" : "127.0.0.1",
    "port" : 4444,
    "cli_args" : {
      "webdriver.chrome.driver" : "/usr/local/bin/chromedriver", <= added this - is this the binary?
      "webdriver.ie.driver" : "",
      "webdriver.firefox.profile" : ""
    }},
    

还尝试更新selenium的设置,使其具有start_process = true和server_path

 "selenium" : {
    "start_process" : true,
    "server_path" : "../selenium-server-standalone-2.39.0.jar",
    "log_path" : "",
    "host" : "127.0.0.1",
    "port" : 4444,
    "cli_args" : {
      "webdriver.chrome.driver" : "/usr/local/bin/chromedriver",
      "webdriver.ie.driver" : "",
      "webdriver.firefox.profile" : ""
    }
  },

不确定我是否指向正确的chromedriver文件/文件夹

还编辑了测试设置

  "test_settings" : {
    "default" : {
      "launch_url" : "http://localhost",
      "selenium_host" : "127.0.0.1",
      "selenium_port" : 4444,
      "silent" : true,
      "disable_colors": false,
      "screenshots" : {
        "enabled" : false,
        "path" : ""
      },
      "desiredCapabilities" : {
        "browserName" : "chrome",   <= changed this from ff to chrome
        "javascriptEnabled" : true,
        "acceptSslCerts" : true
      }
    },

如果我去进行测试(没有-e <browser>),例如nightwatch -g <group>,它在FF中启动并运行..

如果我尝试指定Chrome浏览器(-e chromenightwatch -g <group> -e chrome,我会收到以下错误

ERROR There was an error while starting the test runner:


Error: Invalid testing environment specified: chrome
    at Object.CliRunner.parseTestSettings (/usr/local/lib/node_modules/nightwatch/lib/runner/cli/clirunner.js:354:15)
    at Object.CliRunner.init (/usr/local/lib/node_modules/nightwatch/lib/runner/cli/clirunner.js:31:8)
    at module.exports.runner.runner (/usr/local/lib/node_modules/nightwatch/lib/index.js:512:19)
    at /usr/local/lib/node_modules/nightwatch/bin/runner.js:9:16
    at module.exports.cli.cli (/usr/local/lib/node_modules/nightwatch/lib/index.js:504:7)
    at Object.<anonymous> (/usr/local/lib/node_modules/nightwatch/bin/runner.js:8:14)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)

我的问题是:

  1. 我如何指向二进制文件(不确定它是什么)

  2. 我在nightwatch.js中的设置是否正确?如果我更改了test_settings&#39; browserName = Chrome&#34;它是如何在FF中运行的?

  3. 我在这里遗漏了什么吗?

  4. 提前致谢

3 个答案:

答案 0 :(得分:6)

首先你说

  

我正在尝试使用&#39; chromedriver&#39;因为&#39; selenium-webdriver&#39;   需要FF版本<= 28。

因为你使用的是selenium-server-standalone-2.39.0.jar(旧jar)请从这里下载新的selenium-server-standalone-2.45.0.jar 第二次根据您的环境Chromedriver从此处下载Chrome驱动程序

第三次使用以下代码更新nightwatch.json

{
"src_folders": [
    "tests"
],
"selenium": {
    "start_process": false,
    "server_path": "bin/selenium-server-standalone-2.45.0.jar",
    "log_path": "",
    "host": "127.0.0.1",
    "port": 4444,
    "cli_args": {
        "webdriver.chrome.driver": "bin/chromedriver",
        "webdriver.ie.driver": ""
    }
},
"test_settings": {
    "default": {
        "launch_url": "http://127.0.0.1/",
        "selenium_port": 4444,
        "selenium_host": "localhost",
        "silent": true,
        "screenshots": {
            "enabled": false,
            "path": ""
        },
        "desiredCapabilities": {
            "browserName": "firefox",
            "javascriptEnabled": true,
            "acceptSslCerts": true
        }
    },
    "chrome": {
        "desiredCapabilities": {
            "browserName": "chrome",
            "javascriptEnabled": true,
            "acceptSslCerts": true
        }
    }
}

}

第四次使用nightwatch -g -e chrome

运行您的组

希望它能解决你的问题。

答案 1 :(得分:2)

确保在项目的根目录中创建一个新的nightwatch.json文件。

我犯的错误是尝试使用nightwatch-0.6.11/bin/nightwatch.json中隐藏的http://nightwatchjs.org/下载程序包附带的nightwatch.json文件

答案 2 :(得分:0)

"selenium": {
    "start_process":true,
    "server_path": "bin/selenium.jar",
    "log_path": "",
    "host": "127.0.0.1",
    "port": 4444,
    "cli_args": {
        "webdriver.chrome.driver": "",
        "webdriver.ie.driver": ""
    }
},

上面的代码帮助我通过夜视仪运行selenium服务器