Luego de consultar expertos en el tema, programadores de deferentes áreas y profesores hemos dado con la solución al problema y la compartimos en este post.
Solución:
Ok, suponiendo que esté utilizando Windows, intente los siguientes pasos:
-
Descargue la última versión de ChromeDriver desde aquí ChromeDriver
-
Extrae el zip y coloca el contenido en algún lugar que sepas dónde está, por ejemplo, “C:UsersUserNameAppDataChromeDriver”
-
Vaya a su Panel de control -> Sistema -> Edite las variables del sistema. Haga clic en el botón “variables de entorno”.
-
En el cuadro de variables del sistema habrá una variable llamada “Ruta”, selecciónela y haga clic en editar. Copie y pegue la ruta al directorio contenedor del chromedriver.exe que descargó al final del valor de la variable y termínelo con un punto y coma.
-
Haga clic en Aceptar y nuevamente para cerrar las variables de entorno y nuevamente para cerrar las propiedades del sistema.
-
Cierra y vuelve a abrir la ventana de tu terminal.
-
Ejecute el comando de nuevo.
Espero que esto ayude – hay un buen tutorial aquí
Incluso después de agregar la ruta del controlador en las variables del sistema, no funcionó.
Pero al crear y configurar su propio servicio de Chrome predeterminado, funcionó
var webdriver = require('selenium-webdriver');
var chrome = require('selenium-webdriver/chrome');
var path = require('chromedriver').path;
var service = new chrome.ServiceBuilder(path).build();
chrome.setDefaultService(service);
var driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.chrome())
.build();
Quería tener chromedriver descargado con mi npm install
comando así que instalé chromedriver
de npm por
npm install --save chromedriver
pero luego me quedé con la duda de cómo establecer el camino y terminé en esta pregunta.
Si también usa este método, de acuerdo con los documentos de npm-chromedriver, puede hacerlo
require('chromedriver');
var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder()
.forBrowser('chrome')
.build();
Funciona como se esperaba para mí, observe que chromedriver no se importa asignando el require
resultado a una variable pero tal como es