2015-04-25 23 views
9

Próbuję uruchomić sterownik PhantomJS w Pythonie, ale pojawia się błąd. Czytałem, że powinienem przekazać całą ścieżkę jako argument, ale to nie pomogło.Selenium/PhantomJS podnosi błąd

Oto kod:

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

BŁĄD:

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 

Czy wiesz, co robię źle?

+0

@MalikBrahimi dokumentacja mówi, że ścieżka do pliku wykonywalnego należy - https://selenium.googlecode.com/svn/ trunk/docs/api/py/webdriver_phantomjs/selenium.webdriver.phantomjs.webdriver.html – fixxxer

+0

Dlaczego nie dodać katalogu zawierającego plik wykonywalny w ścieżce systemowej? –

+0

Nie można repro z Selenium 2.44.0 i PhantomJS 2.0.0 w systemie Windows. –

Odpowiedz

12

podjęciu ścieżkę surowca sznurka, dodać „R”:  

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

To działało dla mnie i podczas gdy przenoszenie phantomjs.exe do folderu skryptów również działa, wydaje się to mniejszym rozwiązaniem niż uzyskanie ścieżki do zaakceptowania. – Neil

+0

Działa również po to, aby poprawnie uciec przed ukośnikami odwrotnymi (np. Umieścić C: \\ ... \\ ... zamiast C: \ ... \ ... itd. – Neil

10

przez wzgląd na miejscu uproszczenia wykonywalny w tym samym katalogu, co plik skryptu:

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

Dzięki! Nie wiem, dlaczego nie działało, nawet przy określaniu prawidłowej ścieżki ... kopiowanie phantomjs.exe do mojego folderu Pythona działało. –

+0

to jest odpowiedź! – waas1919

0

Dla mnie żaden z powyżej rozwiązał problem; Znalazłem kod:

driver = webdriver.PhantomJS() 

działa tylko dla korzenia ...

Powiązane problemy