web-dev-qa-db-fra.com

Erreur: le chemin d'accès à l'exécutable du pilote doit être défini par la propriété système webdriver.chrome.driver.

J'essaie exemple de pilote web Selenium node.js ...

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();

... mais j'ai eu une erreur

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)

Je deviné pour définir la variable PATH:

$ cat .bashrc

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

Et redémarrez la console, mais vous obtenez la même erreur.

23
Maxim Yefremov

En utilisant Selenium-server-standalone -* .jar à partir de ici , vous pouvez transmettre la propriété webdriver.chrome.driver lors du lancement de cette manière:

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

Cela élimine l'erreur. L'option -Dproperty=value de la ligne de commande Java définit la valeur de la propriété système comme prévu.

44
o.v.

Juste au cas où quelqu'un aurait cette erreur:

Exception dans le fil "principal" com.beust.jcommander.ParameterException: Option inconnue: -Dwebdrive

ce fil pourrait aider:

Utiliser les paramètres avant le fichier jar

 Java [-options] -jar jarfile [args...] (to execute a jar file)

Donc, votre commande devrait être:

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

J'espère que cela aidera quelqu'un à l'avenir.

6
ProllyGeek

Si vous ne voulez pas utiliser le serveur Selenium, mais simplement utiliser directement chromedriver, cela fonctionnera comme suit:

var chrome = require('Selenium-webdriver/chrome');
var service = new chrome.ServiceBuilder(__dirname + '/node_modules/.bin/chromedriver').build();
var driver = new chrome.createDriver(capabilities, service);

Ce n'est pas très bien documenté, j'ai dû fouiller un peu le code source.

2
timlesallen

La solution la plus simple que j'ai trouvée consiste à rendre le fichier chromedriver exécutable. 

Incorrect:

**-rw-rw-r--** 1 user user  5560736 Jul 31 00:56 chromedriver

Correct:

**-rwxrwxr-x** 1 user user 58204704 Aug 14 08:18 phantomjs

Une fois que le chromedriver a apparié les fantômes, il est devenu vivant

0
Paul Lockwood