所以我在堆栈here上看到了一个类似的问题,但它没有接受的答案,也没有向我提供我需要的信息..
我正在尝试使用&#39; chromedriver&#39;因为&#39; selenium-webdriver&#39;需要FF版本<= 28。
到目前为止我做了什么。
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 chrome
)nightwatch -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)
我的问题是:
我如何指向二进制文件(不确定它是什么)
我在nightwatch.js中的设置是否正确?如果我更改了test_settings&#39; browserName = Chrome&#34;它是如何在FF中运行的?
我在这里遗漏了什么吗?
提前致谢
答案 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服务器