Nơi tìm tắc kè cần thiết bởi gói Selenium Python?


30

Tôi đang sử dụng Ubuntu 16.04.1 LTS. Thực hiện python -Vtrả lại Python 2.7.12. Tôi đang xây dựng một Virtualenv từ đó để cài đặt gói Selenium vào nó thông qua:

pip install -upgrade selenium

Nhưng khi thực hiện chạy thử với tập lệnh python sau:

from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')

nó dẫn đến lỗi này:

 Traceback (most recent call last):
   File "/home/myuser/bin/selenium-experiment.py", line 2, in <module>
     browser = webdriver.Firefox()
   File "/home/myuser/python_virtualenv/local/lib/python2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 135, in __init__
     self.service.start()
   File "/home/myuser/python_virtualenv/local/lib/python2.7/site-packages/selenium/webdriver/common/service.py", line 71, in start
     os.path.basename(self.path), self.start_error_message)
 selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH. 

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

geckodriverlà một tệp thực thi, tôi đã kết luận rằng nó nên được cung cấp bằng cách cài đặt gói selenium thông qua piphoặc ít nhất là có lỗi với một số thông báo cho biết tôi cần làm gì tiếp theo. Rõ ràng là không, vì vậy tôi đã đào sâu hơn: Tôi nghĩ rằng có lẽ Ubuntu nên có một gói cung cấp khả năng geckodriverthực thi nên tôi đã sử dụng apt-file search geckodriverđể tìm kiếm nó và không tìm thấy kết quả.

Tôi lấy cái này ở geckodriverđâu?



Tại sao pip không thể cài đặt lệnh cho selen chỉ cần cài đặt bất cứ thứ gì selen phụ thuộc vào?
bgoodr

3
Đó là một câu hỏi cho những người duy trì Selenium và tắc kè. Tất cả những gì tôi có thể nói là bạn phải lấy tắc kè từ một nơi nào đó (GitHub trong trường hợp này) ngoài PyPI.
edwinksl

Câu trả lời:


44

Tìm bản phát hành mới nhất cho hệ điều hành của bạn.

Giải nén nó và sao chép geckodriver sang /usr/local/bin- vì vậy nếu v0.11.1là phiên bản mới nhất và bạn đã sử dụng linux 64 bit, bạn sẽ làm điều này:

export GECKO_DRIVER_VERSION='v0.24.0'
wget https://github.com/mozilla/geckodriver/releases/download/$GECKO_DRIVER_VERSION/geckodriver-$GECKO_DRIVER_VERSION-linux64.tar.gz
tar -xvzf geckodriver-$GECKO_DRIVER_VERSION-linux64.tar.gz
rm geckodriver-$GECKO_DRIVER_VERSION-linux64.tar.gz
chmod +x geckodriver
cp geckodriver /usr/local/bin/

Bây giờ chạy thử của bạn sẽ làm việc.


2
Phương pháp tương tự cũng áp dụng cho chromedriver. :)
Pratik Nagelia

1
chromedriver bây giờ có thể được cài đặt với apt-get install -qqy chromedriver.
Rakaim

Nếu điều này không hoạt động, sao chép trình điều khiển tắc kè sang /usr/bin. Điều này làm việc cho tôi
Prasanth Ganesan

cp geckodriver /usr/local/bin/cần sự cho phép của SUDO. Vì vậy, Sudo nó.
Anbuselvan Rocky

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.