En passant require('chromedriver).chemin d'accès directement au sélénium webdriver
tl;dr: personne Ne sait comment passer le chemin de chromedriver de sélénium webdriver dans le code, sans réglage de la variable d'environnement PATH?
Je suis d'essayer d'utiliser le sélénium-webdriver avec chrome, mais préfère ne pas installer physiquement chromedriver et de manipuler le chemin. J'ai le code suivant:
var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).
build();
Sans chromedriver ensemble dans le chemin, cela génère l'erreur:
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.
Je préfèrerais ne pas avoir à configurer mon chemin, j'ai donc installé chromedriver de mnp et ajouté à mon colis.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"
},
Maintenant, j'ai chromedriver installé et que vous pouvez obtenir le chemin d'accès avec require('chromedriver').path
, mais je n'ai aucun moyen de transmettre ce à le sélénium, le webdriver. Quelqu'un sait?
OriginalL'auteur jt000 | 2015-01-01
Vous devez vous connecter pour publier un commentaire.
Vous devez créer & définir votre propre par défaut de chrome de service.
require('sélénium webdriver/chrome') des moyens pour charger le chrome.js fichier à l'intérieur du sélénium webdriver mnp de l'installation. Cela devrait fonctionner très bien. Cependant, je pense que vous pourriez avoir un paquet corrompu.fichier json (vous ne devriez pas voir une erreur d'analyse à partir d'une référence non résolue). Avez-vous apporter des modifications à ce fichier?
oui les changements qui vous a suggéré de faire dans le package.json
Qui devrait aller dans votre paquet.fichier json. Pas dans le "sélénium webdriver/paquet.json", comme mentionné dans le SyntaxError.
J'obtiens cette erreur Serveur de résiliation anticipée avec l'état 0
OriginalL'auteur jt000
Vous pouvez également le faire:
';'
, vous devez utiliserpath.delimiter
.Le fait de résoudre la question d'origine? On dirait que vous venez de inline "webdriver" variable de ma réponse ci-dessus. Peut-être que je suis un malentendu...
L'idée ici est que vous n'avez pas besoin de construire un service. L'astuce ici est que
require('chromedriver');
va ajouter chromedriver chemin d'accès à laprocess.env.PATH
. En raison de cetteselenium-webdriver
serez en mesure de commencer la chromedriver si le pilote aveccrome
capacité est demandé.est-ce aussi travailler pour Firefox?
OriginalL'auteur mucsi96