问题
I have this issue with firefox version 47 https://github.com/seleniumhq/selenium/issues/2110
So, i have tried to add Marionette web driver to fix it: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver
But:
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'
returns error:
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
回答1:
the firefox binary capability you're setting points to the firefox binary, not the marionette driver binary. You need to add /Users/myproject/geckodriver-0.8.0-OSX
to your path as follows:
Open a terminal and run this command
export PATH=$PATH:/Users/myproject/geckodriver-0.8.0-OSX
回答2:
I ran into this issue and can confirm that firefox_capabilities['binary']
should point to the Firefox binary, not to GeckoDriver. The Python example in the Mozilla WebDriver documentation has been clarified on this topic.
回答3:
In addition to the other two answers, you probably don't want to change the PATH
system wide since you need it only when running the tests. A way to have the right PATH
only when you need it is to set it in code:
os.environ["PATH"] += os.pathsep + 'path/to/dir/containing/geckodriver/'
A simpler workaround would be to simple move the geckodriver
binary to the directory you already have in your path:
mv geckodriver /usr/local/bin
来源:https://stackoverflow.com/questions/37808643/selenium-install-marionette-webdriver