2015-04-25 25 views
9

Ich versuche PhantomJS Treiber in Python zu laufen, aber ich bekomme Fehler. Ich habe gelesen, dass ich den ganzen Weg als Argument gehen sollte, aber es hat nicht geholfen. HierSelen/PhantomJS löst Fehler

ist der Code:

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') 

ERROR:

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 

Wissen Sie, was mache ich falsch?

+0

@MalikBrahimi die Dokumentation sagt, dass der Pfad der ausführbaren Datei gegeben werden sollte - https://selenium.googlecode.com/svn/ trunk/docs/api/py/webdriver_phantomjs/selen.webdriver.phantomjs.webdriver.html – fixxxer

+0

Warum nicht das Verzeichnis mit der ausführbaren Datei im Systempfad hinzufügen? –

+0

Kann Selenium 2.44.0 und PhantomJS 2.0.0 unter Windows nicht reprografieren. –

Antwort

12

den Pfad in rohem String, fügen Sie 'r':  

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

Dies funktionierte für mich und während phantomjs.exe in den Skriptordner verschoben wird, scheint es auch eine geringere Lösung zu sein, als tatsächlich den Pfad zu akzeptieren. – Neil

+0

Es funktioniert auch nur, um die umgekehrten Schrägstriche richtig zu umgehen (dh setzen Sie C: \\ ... \\ ... anstelle von C: \ ... \ ... usw – Neil

10

halbe Stelle der Einfachheit die ausführbare Datei im selben Verzeichnis wie das Skript:

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

Danke! Ich weiß nicht, warum es nicht funktionierte, selbst wenn ich den korrekten Pfad angegeben habe ... Kopieren von phantomjs.exe in meinen Python-Ordner hat funktioniert. –

+0

Das ist die Antwort! – waas1919

0

Für mich keinen der oben löste das Problem; Ich den Code gefunden:

driver = webdriver.PhantomJS() 

Wird nur für root arbeiten ...