0 votes
1 view
in Devops and Agile by (22.5k points)

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

1 Answer

0 votes
by (57.5k points)

As you are using Selenium 3.8.0 you have to use GeckoDriver mandatorily. But again as you are using Firefox v46.0 you have to set the capability marionette to 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()

Welcome to Intellipaat Community. Get your technical queries answered by top developers !


Categories

...