Comment faire pour résoudre les “chromedriver exécutable doit être dans le CHEMIN d'accès” erreur lors de l'exécution de Sélénium Chrome à l'aide de virtualenv dans PyDev?
Court:
Avoir lu de Contrôler le Navigateur avec le sélénium Module à https://automatetheboringstuff.com/chapter11, je suis en train de lancer le Sélénium Chrome pilote dans un environnement virtuel à partir de PyDev. J'ai réussi à le faire à partir de l'extérieur de PyDev, mais de l'intérieur, j'obtiens:
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
Long:
Je suis sous Linux Debian 3.10.11-1.
Suivantes https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/, avant même de commencer avec PyDev, j' . . .
- Configurer un environnement virtuel avec virtualenv
- Installé virtualenv
pip install virtualenv
- Fait un répertoire de mon projet
cd ~/temp/
mkdir my_project
cd my_mproject
- Créé un environnement virtuel appelé
env
virtualenv env
- Activé.
source env/bin/activate
- Est allé en Python en mode interactif pour me dire quelle version de Python j'ai été en utilisant
python
Python 2.7.12rc1 (par défaut, 13 Juin 2016, 09:20:59) [GCC 5.4.0 20160609] sur linux2
- Installé virtualenv
- Sortie de la interacive mode et installé le Sélénium trucs
- D'abord le module
pip installer le sélénium
- Suggestion suivante à https://groups.google.com/forum/#!topic/obéissent-le-test-chèvre-livre/Ty4FQoV3S0Q, installé chromedriver
-
cd env/bin/
-
wget http://chromedriver.storage.googleapis.com/2.22/chromedriver_linux64.zip
-
décompresser chromedriver_linux64.zip
-
- D'abord le module
- Écrit un petit script pour voir si cela fonctionnerait
de sélénium importation webdriver pilote = webdriver.Chrome()
Il a couru. Un Chrome web-fenêtre du navigateur ouverte. Grand.
Maintenant pour l'essayer dans PyDev:
Suit, en gros,https://www.caktusgroup.com/blog/2011/08/31/getting-started-using-python-eclipse/ . . .
- Installé Eclipse (Néon)
- Installé PyDev
- Depuis Eclipse, a créé un nouveau projet (Fichier menu > Nouveau Projet > Général > Projet, est entré dans une Nom du Projet et cliqué sur Finition).
- De retour à l'invite de commande (parce que je n'ai pas encore trouvé comment le faire à partir de l'Éclipse et PyDev):
cd
'ed dans mon nouveau projet du répertoire racine et créé un environnement virtuel. - Comme avant, toujours à l'invite de commande, j'ai activé le nouveau projet de l'environnement virtuel et installé le Sélénium module, puis le
chromedriver
fichier exécutable qui est venu de lachromedriver_linux64.zip
fichier. - De retour dans Eclipse, j'ai signé mon projet pour l'utilisation de l'environnement virtuel, qui, j'imagine, dans PyDev lingo s'appelle pas un environnement virtuel, mais plutôt d'un interprète:
- Fenêtre menu > Préférences > PyDev > Interprètes > Interpréteurs Python > Ajouter.
- A donné l'interprète un nom.
- Pour Interprète Exécutable, j'ai choisi le
python2.7
fichier dans mon projet, l'environnement virtuel estbin
répertoire - Cliqué droit sur mon projet, sélectionnez Propriétés > PyDev - Interprète/Grammaire > Sous Interprète sélectionné mon nouvel interprète > OK.
- Donné mon projet le même script . . .
de sélénium importation webdriver pilote = webdriver.Chrome()
et il a couru en cliquant sur le Exécuter menu > Exécuter en tant Qu' > Python Exécuter.
Maintenant, si, au lieu de Chrome navigateur web de l'ouverture de la fenêtre, je reçois un message dans la console d'Eclipse:
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
Pour obtenir la fenêtre du navigateur web pour ouvrir comme il le fait quand je lance le même sac à partir d'une invite de commande, j'ai essayé:
- l'ajout de l'environnement virtuel du
bin
dossier (parce que c'est là lechromedriver
fichier est) à l'interprète. - la suppression de l'interprète, et d'en créer de nouveaux.
- la copie de la
chromedriver
dans le même répertoire que mon script est. Pas de différence. - l'ajout de la
chromedriver_linux64.zip
fichier que j'ai téléchargé à l'interprète. Toujours la même erreur.
Je continue en écrivant mon script dans PyDev, puis, s'adressant à l'invite de commande pour l'exécuter. Souhaite juste que je puisse l'exécuter dans PyDev le mode debug.
Comment puis-je obtenir cette "chromedriver" dans le "PATH
" dans PyDev pour que je puisse exécuter le script à partir d'Eclipse?
OriginalL'auteur user1930469 | 2016-07-03
Vous devez vous connecter pour publier un commentaire.
Ne sais pas si c'est la meilleure chose à faire, mais j'ai trouvé quelque chose qui semble fonctionner: j'ai ajouté à mon interprète la disposition variable nommée CHEMIN, et j'ai édité que la valeur de la variable d'inclure le chemin d'accès relatif à mon projet en environnement virtuel est
bin
répertoire (c'est à dire, le répertoire où j'ai lechromedriver
fichier exécutable enregistré).Plus précisément:
Fenêtre menu dans Eclipse > Préférences > PyDev sur la gauche > Interprètes > Interpréteurs Python.
Sélectionné l'interprète que j'avais créé plus tôt pour mon projet (comme décrit dans la question ci-dessus)
Changé à partir de Libaries à Environnement dans la moitié inférieure de la Préférences fenêtre
Cliqué sur le Sélectionnez... bouton sur la droite.
Une liste de Variable d'Environnement est apparu.
Défile vers le bas dans la liste et a trouvé un nommé CHEMIN. Sélectionné et cliquez sur le OK bouton.
Sa valeur (
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
) est apparu dans le vide de la liste.Je l'ai sélectionnée et cliqué sur Modifier...
Son nom et sa valeur devient modifiable.
À l'extrémité droite de la valeur que j'ai ajouté
:env/bin
(c'est à dire, le chemin relatif à partir du répertoire contenant mon script pour mon projet en environnement virtuel estbin
répertoire).Cliqué OK pour revenir à l' Préférences fenêtre > Appliquer dans le Préférences fenêtre > OK pour fermer la Préférences fenêtre.
A couru le programme depuis Eclipse (sélectionné le fichier de script > Exécuter menu > Exécuter en tant Qu' > Python Exécuter).
Un Chrome (et Chrome - c'est Debian) fenêtre ouverte juste comme cela avait été le cas quand j'ai couru mon programme à partir de l'invite de commande.
Grande.
OriginalL'auteur user1930469
Si toutes les tentatives pour mettre chromedriver dans votre CHEMIN d'accès échoue, vous pouvez également le chemin de l'exécutable à webdriver.Chrome() comme ceci:
C'était ma solution éventuelle lors de l'exécution de chromedriver à partir d'un virtualenv.
OriginalL'auteur tterry