nodejs chromedriver chrome node.js selenium-webdriver selenium-chromedriver

node.js - chromedriver - selenium webdriver nodejs



Error: la ruta del ejecutable del controlador debe establecerse mediante la propiedad del sistema webdriver.chrome.driver (5)

Estoy probando el ejemplo del controlador web de selenio 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();

... pero obtuve un 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)

guessed que establecería la variable PATH:

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

Y reinicie la consola, pero obtuvo el mismo error.


En caso de que alguien obtenga este error:

Excepción en el hilo "principal" com.beust.jcommander.ParameterException: Opción desconocida: -Dwebdrive

este thread podría ayudar:

Use los parámetros antes del archivo jar

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

Entonces tu comando debería ser:

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

Espero que ayude a alguien en el futuro.


La solución más simple que encontré es hacer ejecutable el archivo chromedriver.

Incorrecto:

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

Correcto:

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

Una vez que el cromedriver coincidía con phantomjs, cobraba vida


Puede usar el siguiente código para establecer la ruta en su código

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

Camino a ser mencionado entre comillas.


Si no quiere usar el servidor de selenio pero solo quiere usar el cromedriver directamente, algo como esto funcionará:

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

No está muy bien documentado, tuve que hurgar un poco en el código fuente.


Usando selenium-server-standalone- * .jar desde here , puede pasar la propiedad webdriver.chrome.driver al webdriver.chrome.driver esta manera:

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

Esto elimina el error; La opción de línea de comando de Java -Dproperty=value establece un valor de propiedad del sistema como se esperaba.