javascript - modules - Pasar require(''chromedriver).ruta directamente a Selenium-webdriver
selenium webdriver js (2)
tl; dr: ¿Alguien sabe cómo pasar la ruta de chromedriver a selenium-webdriver en el código sin configurar la variable de entorno PATH?
Estoy intentando usar Selenium-webdriver con Chrome, pero preferiría no instalarlo físicamente y manipular el camino. Tengo el siguiente código:
var webdriver = require(''selenium-webdriver'');
var driver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).
build();
Sin Chromedriver establecido en la ruta, esto arroja el error:
Error: The ChromeDriver could not be found on the current PATH. Please download the latest
version of the ChromeDriver from http://chromedriver.storage.googleapis.com/index.html and
ensure it can be found on your PATH.
Preferiría no tener que configurar mi ruta, así que instalé chromedriver desde npm y lo agregué a mi package.json:
"scripts": {
"preinstall-chromedriver": "npm install",
"install-chromedriver": "node node_modules/chromedriver/install.js",
"pretest_e2e": "npm run install-chromedriver",
"test_e2e": "node release/test/rune2e.js"
},
Ahora tengo Chromedriver instalado y puedo obtener la ruta con require(''chromedriver'').path
, pero no tengo forma de pasar esto al Selenium-webdriver. ¿Nadie sabe?
Necesitas crear y configurar tu propio servicio de Chrome predeterminado.
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();
También puedes hacer esto:
require(''chromedriver'');
const webdriver = require(''selenium-webdriver'');
const driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.chrome())
.build();