2015-04-25 19 views
9

Tôi đang cố gắng để chạy PhantomJS lái xe trong Python nhưng tôi nhận được lỗi. Tôi đã đọc rằng tôi nên vượt qua toàn bộ con đường như một đối số nhưng nó đã không giúp đỡ.Selenium/PhantomJS tăng lỗi

Đây là mã:

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

LỖI:

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 

Bạn có biết những gì tôi làm sai?

+0

@MalikBrahimi tài liệu nói rằng đường dẫn đến thực thi cần được - https://selenium.googlecode.com/svn/ trunk/docs/api/py/webdriver_phantomjs/selenium.webdriver.phantomjs.webdriver.html – fixxxer

+0

Tại sao không thêm thư mục chứa tệp thi hành trong đường dẫn hệ thống? –

+0

Không thể repro với Selenium 2.44.0 và PhantomJS 2.0.0 trên Windows. –

Trả lời

12

Tận dụng đường dẫn trong chuỗi nguyên, thêm 'r':  

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

Điều này làm việc cho tôi và trong khi di chuyển phantomjs.exe vào thư mục kịch bản cũng hoạt động, có vẻ như một giải pháp ít hơn thực tế nhận được đường dẫn để được chấp nhận. – Neil

+0

Nó cũng hoạt động chỉ để thoát đúng các dấu gạch chéo ngược (tức là đặt C: \\ ... \\ ... thay cho C: \ ... \ ... v.v. – Neil

10

Đối với vị trí vì sự đơn giản của các thực thi trong thư mục tương tự như kịch bản của bạn:

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

Cảm ơn! Tôi không biết tại sao nó không hoạt động ngay cả khi chỉ định đường dẫn chính xác ... sao chép phantomjs.exe vào thư mục python của tôi đã làm việc. –

+0

đây là câu trả lời! – waas1919

0

Đối với tôi không có trên đã giải quyết được vấn đề; Tôi tìm thấy mã:

driver = webdriver.PhantomJS() 

Sẽ chỉ làm việc cho rễ ...

Các vấn đề liên quan