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

Max*_*mov 23 node.js selenium-chromedriver selenium-webdriver

我正在尝试node.js selenium web驱动程序示例 ...

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();
Run Code Online (Sandbox Code Playgroud)

......但是得到了错误

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)
Run Code Online (Sandbox Code Playgroud)

猜想设置PATH变量:

$ cat .bashrc

export PATH=$PATH:/usr/local/git/bin/
export PATH=$PATH:~/bin
export PATH=$PATH:~/Dropbox/chromedriver
Run Code Online (Sandbox Code Playgroud)

并重启控制台,但得到了同样的错误.

o.v*_*.v. 44

这里使用selenium-server-standalone- * .jar ,你可以在启动时传递属性,如下所示:webdriver.chrome.driver

java -jar selenium-server-standalone-2.35.0.jar -Dwebdriver.chrome.driver="D:\dev\chromedriver.exe"
Run Code Online (Sandbox Code Playgroud)

这消除了错误; Java命令行选项-Dproperty=value按预期设置系统属性值.


Pro*_*eek 6

以防有人得到此错误:

线程"main"中的异常com.beust.jcommander.ParameterException:未知选项:-Dwebdrive

这个帖子可能有帮助:

在jar文件之前使用参数

 java [-options] -jar jarfile [args...] (to execute a jar file)
Run Code Online (Sandbox Code Playgroud)

所以你的命令应该是:

java -jar -Dwebdriver.chrome.driver="D:\dev\chromedriver.exe" selenium-server-standalone-2.35.0.jar 
Run Code Online (Sandbox Code Playgroud)

希望它将来有助于某人.