selenium.common.exceptions.SessionNotCreatedException: Message: Unable to find a matching set of capabilities with Firefox 46 through Selenium

87,177

Solution 1

As you are using Selenium 3.8.0 you have to use GeckoDriver as a mandatory. But again as you are using Firefox v46.0 you have to set the capability marionette as False through DesiredCapabilities() as follows :

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

cap = DesiredCapabilities().FIREFOX
cap["marionette"] = False
browser = webdriver.Firefox(capabilities=cap, executable_path="C:\\path\\to\\geckodriver.exe")
browser.get('http://google.com/')
browser.quit()

Solution 2

If you're going to use Geckodriver, you definitely need to use a newer version of Firefox. Frex: https://github.com/mozilla/geckodriver/releases/tag/v0.19.0 lists FF55 or greater.

If you plan on using FF46, don't use geckodriver. Update your capabilities to have marionette set to False:

caps = DesiredCapabilities.FIREFOX.copy()
caps['marionette'] = False
driver=webdriver.Firefox(capabilities=caps)

Solution 3

I had this issue on my MacOS 10.5 Catalina. What I did: 1. Installed the geckodriver using brew install geckodriver 2. Deleted/uninstalled my existing(OLD) Firefox browser (v.46) and installed v70. 3. tried:

from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://google.com')

The above worked fine with no errors, by launching Firefox and loading google.com

Solution 4

I got this error because the Firefox browser was not installed on my machine. You can download Firefox or download the Chrome driver here. If you use the Chrome drive, make sure you add it to the path (just like the geckodriver).

And the you can use it like this:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("http://www.python.org")
Share:
87,177
Eamonn Gormley
Author by

Eamonn Gormley

Web enthusiast since the 1990s.

Updated on January 11, 2021

Comments

  • Eamonn Gormley
    Eamonn Gormley over 3 years

    I must have some versions here that don't match up since I can't get Selenium with Python to fire up a Firefox web browser. I'm using an older version of Firefox because other people in here have the same old version of Python and for them the old version of Firefox works best.

    Code:

    from selenium import webdriver
    from selenium import common
    from selenium.webdriver import ActionChains
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.common.exceptions import TimeoutException
    from selenium.common.exceptions import NoSuchElementException
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    driver=webdriver.Firefox(capabilities=DesiredCapabilities.FIREFOX)
    

    Error:

    Traceback (most recent call last):
      File "scrapeCommunitySelenium.py", line 13, in <module>
        driver=webdriver.Firefox(capabilities=DesiredCapabilities.FIREFOX)
      File "/Library/Python/2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 158, in __init__
        keep_alive=True)
      File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 154, in __init__
        self.start_session(desired_capabilities, browser_profile)
      File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 243, in start_session
        response = self.execute(Command.NEW_SESSION, parameters)
      File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 311, in execute
        self.error_handler.check_response(response)
      File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 237, in check_response
        raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.SessionNotCreatedException: Message: Unable to find a matching set of capabilities
    

    Version info:

    • Python 2.7.10
    • Selenium 3.8.0
    • Firefox 46.0
    • GeckoDriver 0.19.1 (It's in a folder which is in my PATH environment variable)
    • MacOS 10.12.6
  • Eamonn Gormley
    Eamonn Gormley over 6 years
    Setting marionette to False seems to do the trick. Thank you!
  • akshay dhule
    akshay dhule almost 6 years
    ' cap["marionette"] = false ' => gives error : 'caps not defined'. What does this line change?
  • FilBot3
    FilBot3 over 4 years
    I keep getting "The browser appears to have exited before we could reconnect." However, its asking to close the browser each time I run the thing.
  • Darsh Patel
    Darsh Patel almost 4 years
    This solution also works for MacOS, just need to change the executable path.
  • Yaakov Bressler
    Yaakov Bressler over 3 years
    SAME here! Wow, I must've read over 75 webpages before coming across this...