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
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
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.
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