Używam Ubuntu 16.04.1 LTS. Realizacja python -V
zwrotów Python 2.7.12
. Buduję z tego virtualenv, aby zainstalować w nim pakiet Selenium poprzez:
pip install -upgrade selenium
Ale podczas testowania uruchom następujący skrypt Python:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')
powoduje ten błąd:
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
Ponieważ geckodriver
jest to plik wykonywalny, doszedłem do wniosku, że powinien on zostać zapewniony przez instalację pakietu selenu poprzez pip
lub przynajmniej błąd z jakimś komunikatem informującym o tym, co muszę zrobić dalej. Najwyraźniej nie, więc kopałem dalej: pomyślałem, że być może Ubuntu powinien mieć pakiet zapewniający geckodriver
plik wykonywalny, więc szukałem apt-file search geckodriver
go i nie znalazłem żadnych wyników.
Skąd mogę uzyskać ten geckodriver
plik wykonywalny?
Odpowiedzi:
Znajdź najnowszą wersję dla swojego systemu operacyjnego.
Wyodrębnij go i skopiuj geckodriver do
/usr/local/bin
- więc jeśliv0.11.1
była najnowsza wersja, a byłeś na 64-bitowym systemie Linux, zrobiłbyś to:Teraz twój okres próbny powinien działać.
źródło
apt-get install -qqy chromedriver
./usr/bin
. To zadziałało dla mniecp geckodriver /usr/local/bin/
potrzebuje pozwolenia SUDO. Więc Sudo.Ubuntu 16.04+:
źródło