Maxim Yefremov Maxim Yefremov - 3 months ago 42
Node.js Question

Error: The path to the driver executable must be set by the webdriver.chrome.driver system property

I am trying 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();


... but got error

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)


I guessed to set PATH variable:

$ cat .bashrc

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


And restart console, but got the same error.

Answer

Using selenium-server-standalone-*.jar from here, you can pass webdriver.chrome.driver property when launching it like so:

java -jar selenium-server-standalone-2.35.0.jar -Dwebdriver.chrome.driver="D:\dev\chromedriver.exe"

This eliminates the error; Java command line option -Dproperty=value sets a system property value as expected.

Comments