错误:驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性设置

时间:2013-08-16 11:38:05

标签: node.js selenium-webdriver selenium-chromedriver

我正在尝试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

然后重启控制台,但出现了同样的错误。

5 个答案:

答案 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");

引号中提到的路径。