2015-04-25 17 views
9

Sto cercando di eseguire PhantomJS conducente in Python ma sto ottenendo errore. Ho letto che dovrei passare l'intero percorso come argomento, ma non è stato d'aiuto.Selenio/PhantomJS genera l'errore

Ecco il codice:

from selenium import webdriver 

# driver = webdriver.Chrome('D:\Python_projects\chromedriver_win32/chromedriver.exe') # this works 
driver = webdriver.PhantomJS(executable_path='D:\Python\phantomjs-2.0.0-windows\bin\phantomjs.exe') 

ERRORE:

Traceback (most recent call last): 
    File "path to script", line 8, in <module> 
    driver = webdriver.PhantomJS(executable_path='D:\Python\phantomjs-2.0.0-windows\bin\phantomjs.exe') 
    File "C:\Python27\lib\site-packages\selenium\webdriver\phantomjs\webdriver.py", line 50, in __init__ 
    self.service.start() 
    File "C:\Python27\lib\site-packages\selenium\webdriver\phantomjs\service.py", line 75, in start 
    raise WebDriverException("Unable to start phantomjs with ghostdriver.", e) 
selenium.common.exceptions.WebDriverException: Message: Unable to start phantomjs with ghostdriver. 
Screenshot: available via screen 

Sai cosa faccio di sbagliato?

+0

@MalikBrahimi la documentazione dice che il percorso del file eseguibile dovrebbe essere data - https://selenium.googlecode.com/svn/ trunk/docs/api/py/webdriver_phantomjs/selenium.webdriver.phantomjs.webdriver.html – fixxxer

+0

Perché non aggiungere la directory contenente l'eseguibile nel percorso di sistema? –

+0

Impossibile eseguire la riproduzione con Selenium 2.44.0 e PhantomJS 2.0.0 su Windows. –

risposta

12

rendere il percorso nella stringa grezzo, aggiungere 'r':  

driver = webdriver.PhantomJS(executable_path=r'D:\Python\phantomjs-2.0.0-windows\bin\phantomjs.exe') 
+0

Questo ha funzionato per me e anche se lo spostamento di phantomjs.exe nella cartella degli script funziona anche, sembra una soluzione minore rispetto a quella di ottenere effettivamente il percorso da accettare. – Neil

+0

Funziona anche solo per scappare correttamente i backslash (cioè inserire C: \\ ... \\ ... al posto di C: \ ... \ ... etc etc – Neil

10

Per luogo semplicità l'eseguibile nella stessa directory come script:

driver = webdriver.PhantomJS() # now there's no need for a path 
+1

Grazie! Non so perché non funzionasse anche quando si specificava il percorso corretto ... copiando phantomjs.exe nella mia cartella python funzionava. –

+0

questa è la risposta! – waas1919

0

Per me nessuno dei sopra risolto il problema; Ho trovato il codice:

driver = webdriver.PhantomJS() 

funziona solo per root ...