web-dev-qa-db-fra.com

PhantomJS avec erreur Selenium: Message: Le fichier "phantomjs" doit être dans PATH

Je tente d'exécuter ce script:

https://github.com/Chillee/coursera-dl-all

Cependant, le script échoue à la ligne session = webdriver.PhantomJS() avec l'erreur suivante

Traceback (most recent call last):
  File "dl_all.py", line 236, in <module>
    session = webdriver.PhantomJS()
  File "/home/<user>/.local/lib/python2.7/site-packages/Selenium/webdriver/phantomjs/webdriver.py", line 51, in __init__
    self.service.start()
  File "/home/<user>/.local/lib/python2.7/site-packages/Selenium/webdriver/common/service.py", line 69, in start
    os.path.basename(self.path), self.start_error_message)
Selenium.common.exceptions.WebDriverException: Message: 'phantomjs' executable needs to be in PATH. 

Exception AttributeError: "'Service' object has no attribute 'process'" in <bound method Service.__del__ of <Selenium.webdriver.phantomjs.service.Service object at 0x7f6f632864d0>> ignored

Comment ajouter des phantomjs à mon PATH? Je suis sous ubuntu 16.04 et ai installé Selenium via npm install Selenium.

17
quantumbutterfly

J'ai résolu un exemple de problème avec cette commande en ligne de commande

export PATH=${PATH:+$PATH:}/home/<login>/phantomjs/bin

Son travail si/home/login/phantomjs/bin est le chemin du dossier contenant l'exécutable 'phantomjs'.

4
Ourik gruzdev

vous devez télécharger le pilote

après cela session = webdriver.PhantomJS("c:\driverPath")

11
Leon Barkan

Solution de travail:

En supposant que vous êtes sur Windows - il en est de même pour linux

1) Téléchargez phantomjs ici: http://phantomjs.org/download.html pick windows/linux en conséquence

2) décompressez votre fichier phantomjs-2.1.1-windows.Zip et enregistrez-le, par exemple, sur le lecteur c, tel que C:\phantomjs-2.1.1-windows\bin (il existe ici un phantomjs.exe besoins du système)

3) Sous Windows 10, modifiez le chemin de votre environnement pour inclure ce dossier bin C:\phantomjs-2.1.1-windows\bin tel que cet exemple  enter image description here

4) vous pouvez ou non redémarrer votre machine. Terminé! ça devrait marcher! (Webdriver recherche phantomjs.exe et il devrait être prêt maintenant)

10
Dung

Vous devez fournir le chemin de l'exécutable. C'est pour Linux ou plus précisément Ubuntu.

Vous devez spécifier le chemin du fichier exécutable (complet), et non le chemin du répertoire contenant l'exécutable.

driver = webdriver.PhantomJS(executable_path='Complete path/to/phantomjs')

Il ne nécessite aucun pilote.

A bien fonctionné pour moi sur Ubuntu 16.04.

1
Nandesh

Pourquoi n'utilisez-vous pas le moyen le plus simple jamais utilisé et passé le phantomjs.exe

dans le répertoire des scripts Python déjà ajouté à l'environnement système le chemin du répertoire python devrait ressembler à ceci 

C:\Users\[user]\AppData\Local\Programs\Python\Python[version]\Scripts
# you can use it as following 
from Selenium import webdriver
driver = webdriver.PhantomJS()
0
ahmed.soli