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

我正在尝试node.jsseleniumweb驱动程序的例子 …

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) 

我猜想设置PATHvariables:

 $ cat .bashrc export PATH=$PATH:/usr/local/git/bin/ export PATH=$PATH:~/bin export PATH=$PATH:~/Dropbox/chromedriver 

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

从这里使用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 value按预期设置系统属性值。

以防万一有人得到这个错误:

线程“main”中的exceptioncom.beust.jcommander.ParameterException:未知的选项:-Dwebdrive

这个线程可能有帮助:

在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 

希望将来能帮助别人。

如果你不想使用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); 

这是不是很好的文件,我不得不围绕源代码一点点。

我发现最简单的解决scheme是使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它起死回生

您可以使用下面的代码在您的代码中设置path

 System.setProperty("webdriver.chrome.driver", "your_path"); 

在引号内提及的path。