我正在尝试node.js selenium web driver example ...
var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().
usingServer('http://localhost:4444/wd/hub').
withCapabilities(webdriver.Capabilities.chrome()).
build();
driver.get('http://www.google.com');
driver.findElement(webdriver.By.name('q')).sendKeys('webdriver');
driver.findElement(webdriver.By.name('btnG')).click();
driver.wait(function() {
return driver.getTitle().then(function(title) {
return title === 'webdriver - Google Search';
});
}, 1000);
driver.quit();
......但收到错误
promise.js:1542
throw error;
^
UnknownError: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see http://code.google.com/p/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://code.google.com/p/chromedriver/downloads/list
at new bot.Error (/Users/maks/Dropbox/nodeApps/orgi/node_modules/selenium-webdriver/lib/atoms/error.js:109:18)
我guessed设置PATH变量:
$ cat .bashrc
export PATH=$PATH:/usr/local/git/bin/
export PATH=$PATH:~/bin
export PATH=$PATH:~/Dropbox/chromedriver
然后重启控制台,但出现了同样的错误。
答案 0 :(得分:44)
使用here中的selenium-server-standalone- * .jar,启动时可以传递webdriver.chrome.driver
属性,如下所示:
java -jar selenium-server-standalone-2.35.0.jar -Dwebdriver.chrome.driver="D:\dev\chromedriver.exe"
这消除了错误; Java命令行选项-Dproperty=value
按预期设置系统属性值。
答案 1 :(得分:6)
以防有人得到此错误:
线程“main”中的异常com.beust.jcommander.ParameterException: 未知选项:-Dwebdrive
此 thread 可能有所帮助:
在jar文件之前使用参数
java [-options] -jar jarfile [args...] (to execute a jar file)
所以你的命令应该是:
java -jar -Dwebdriver.chrome.driver="D:\dev\chromedriver.exe" selenium-server-standalone-2.35.0.jar
希望将来帮助某人。
答案 2 :(得分:2)
如果你不想使用selenium服务器但只是想直接使用chromedriver,那么这样的东西就可以了:
var chrome = require('selenium-webdriver/chrome');
var service = new chrome.ServiceBuilder(__dirname + '/node_modules/.bin/chromedriver').build();
var driver = new chrome.createDriver(capabilities, service);
它没有很好的文档记录,我不得不捅了一下源代码。
答案 3 :(得分:0)
我找到的最简单的解决方案是使chromedriver文件可执行。
不正确:
**-rw-rw-r--** 1 user user 5560736 Jul 31 00:56 chromedriver
正确:
**-rwxrwxr-x** 1 user user 58204704 Aug 14 08:18 phantomjs
一旦chromedriver匹配phantomjs它就会栩栩如生
答案 4 :(得分:-2)
您可以使用以下代码在代码中设置路径
System.setProperty("webdriver.chrome.driver", "your_path");
引号中提到的路径。