2016-06-14 4 views
12

У меня есть эта проблема с Firefox версии 47 https://github.com/seleniumhq/selenium/issues/2110Селен установить марионетка WebDriver

Итак, я пытался добавить веб-драйвер марионеток, чтобы исправить это: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver

Но: ошибка

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 

firefox_capabilities = DesiredCapabilities.FIREFOX 
firefox_capabilities['marionette'] = True 
firefox_capabilities['binary'] = '/Users/myproject/geckodriver-0.8.0-OSX' 

возвращается :

selenium.common.exceptions.WebDriverException: Message: 'wires' executable needs to be in PATH.

Exception AttributeError: "'Service' object has no attribute 'process'" in > ignored

selenium == 2.53.5

ответ

9

бинарная способность firefox, которую вы устанавливаете, указывает на двоичный код firefox, а не бинарный драйвер марионетки. Вам нужно добавить /Users/myproject/geckodriver-0.8.0-OSX в свой путь следующим образом:

Открыть терминал и запустить эту команду

export PATH=$PATH:/Users/myproject/geckodriver-0.8.0-OSX 
5

Я ran into this issue и могу подтвердить, что firefox_capabilities['binary'] должен указывать на двоичном Firefox, а не GeckoDriver. Пример Python в Mozilla WebDriver documentation был уточнен по этой теме.

+0

firefox_capabilities = DesiredCapabilities.FIREFOX firefox_capabilities [ 'марионетка'] = True firefox_capabilities [ 'бинарных'] = 'C: \ Program Files (x86) \ Mozilla Firefox \ firefox.exe' driver = webdriver.Firefox (возможности = firefox_capabilities) Привет, Раймонд, у меня также проблемы. Я добавил, что, как мне кажется, все исправления для проблем, которые перечислены в статьях, однако я все равно получаю, что исполняемые файлы одного и того же провода должны быть в ошибке пути. – user3042850

+1

Ошибка говорит, что исполняемый файл должен быть включен в путь, но у меня есть ссылка на то, где firefox exe находится в моей переменной пути среды. – user3042850

+1

@ user3042850 Если вы используете 64-битную Windows, тогда попробуйте выполнить исполняемый файл на https://sny.no/e/geckodriver1.exe - большинство учебников указывают вам на 32-битный исполняемый файл (рекомендация взята из https: // github.com/mozilla/geckodriver/issues/74#issuecomment-226927179) Также имейте в виду, что если вы находитесь в Windows, вам нужно будет переименовать двоичный файл драйвера в «wire.exe», а не «проводы» :-) – user3468054

0

В дополнение к двум другим ответам, вы, вероятно, не хотите менять системную шину PATH, так как она вам нужна только при выполнении тестов. Способ имеет право PATH только тогда, когда вам это нужно, чтобы установить его в коде:

os.environ["PATH"] += os.pathsep + 'path/to/dir/containing/geckodriver/' 

Более простой обходной путь будет простым хода в geckodriver двоичная в каталог вы уже имеете на своем пути:

mv geckodriver /usr/local/bin