2016-10-14 5 views
8

Я прочитал предыдущие вопросы, заданные по этой теме, и попытался следовать этим предложениям, но я продолжаю получать ошибки. На терминале, я побежалисполняемый файл geckodriver должен находиться в пути

export PATH=$PATH:/Users/Conger/Documents/geckodriver-0.8.0-OSX 

Я также попытался

export PATH=$PATH:/Users/Conger/Documents/geckodriver 

Когда я запускаю следующий код Python

from selenium import webdriver 
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 


firefox_capabilities = DesiredCapabilities.FIREFOX 
firefox_capabilities['marionette'] = True 
firefox_capabilities['binary'] = '/Users/Conger/Documents/Firefox.app' 

driver = webdriver.Firefox(capabilities=firefox_capabilities) 

Я до сих пор получаю следующую ошибку

Python - testwebscrap.py:8 
Traceback (most recent call last): 
    File "/Users/Conger/Documents/Python/Crash_Course/testwebscrap.py", line 11, in <module> 
    driver = webdriver.Firefox(capabilities=firefox_capabilities) 
    File "/Users/Conger/miniconda2/lib/python2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 135, in __init__ 
    self.service.start() 
    File "/Users/Conger/miniconda2/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 0x1006df6d0>> ignored 
[Finished in 0.194s] 
+0

удалось выяснить это! Вместо того, чтобы создавать новый путь, я просто добавил файл geckodriver в Путь, указанный в моем файле bash_profile. Работал немедленно! – HearthQiu

ответ

4

Первый мы знаем, что gekodriver является драйвером двигателя Fire fox, и мы знаем, что driver.Firefox() используется для открытия браузера Firefox, и он вызывается движком gekodriver, поэтому нам нужно предоставить gekodirver разрешение на выполнение. , поэтому мы загружаем последнюю версию gkodriver, распаковываем tar-пакет и помещаем gekodriver на /usr/bin/ ok, это мой ответ, и я протестировал его.

37

вы можете понизить селен по

пипа установить селен == 2.53.6

Это решило мою проблему

+3

Есть ли лучшая альтернатива, чем понижение? – Vinay

+2

Хорошо, это лучшее решение – Anarach

+0

Это сработало для меня. –

7

Я просто скачал последнюю версию geckodriver (у меня win7) от here и добавил, что exe-файл в каталоге python (который уже находится в PATH)

+0

после того, как я добавлю C: \ Program Files (x86) \ Python36-32 \ Lib \ site-packages \ selenium \ webdriver \ firefox к своему системному пути и поместите файл geckodriver.exe в эту папку, все сработало хорошо (окна 10.1) (им довольно уверен, что я не предполагал поставить точный путь) – kishu

5

На mac:

brew install geckodriver 

Homebrew - это самый популярный менеджер пакетов для Mac OS X, вам понадобится установить XCode на свой Mac, и он будет затем доступен с вашего терминала.

Вы можете следить за this tutorial при необходимости

+4

Вы должны добавить примечание/ссылку о том, что такое доморощенный (и в идеале, как его установить) если необходимо). – m02ph3u5

Смежные вопросы