Search code examples
dockerseleniumwebdriverselenoid

InvalidArgumentException When using Selenoid WebDriver.Remote


I'm trying to setup my selenium test suite to use Firefox, I'm using selenoid to dockorize the browser for testing. From my understanding I'm doing everything correctly but I'm getting an InvalidArgumentException.

Here is where I'm defining the webdriver.Remote:

firefox_caps = {
  "browserName": "firefox",
  "browserVersion": "97.0",
  "selenoid:options": {
    "enableVNC": True,
    "enableVideo": False
  }
}
cls.driver = webdriver.Remote(command_executor="http://localhost:4444/wd/hub", desired_capabilities=firefox_caps)

And here is the contents of my browsers.json file that selenoid is using:

{
        "chrome": {
                "default": "88.0",
                "versions": {
                        "88.0": {
                                "image": "selenoid/vnc_chrome:88.0",
                                "port": "4444",
                                "path": "/",
                                "env": ["TZ=America/Denver"]
                        }
                }
        },
        "firefox": {
                "default": "97.0",
                "versions": {
                        "97.0": {
                                "image": "selenoid/vnc_firefox:97.0",
                                "port": "4444",
                                "path": "/"}
                }
        }
}

Here is the error message I'm getting when I star the tests:

Traceback (most recent call last):
  File "/Users/ryannygard/selenium/extensions/test_suite.py", line 38, in _handleClassSetUp
    setUpDomain(self.env)
  File "/Users/ryannygard/selenium/automation/core/tests/base.py", line 146, in setUpDomain
    cls.driver = webdriver.Remote(command_executor="http://localhost:4444/wd/hub", desired_capabilities=firefox_caps, browser_profile=FirefoxProfile())
  File "/Users/ryannygard/.local/share/virtualenvs/selenium-8l3DWFXO/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/Users/ryannygard/.local/share/virtualenvs/selenium-8l3DWFXO/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/Users/ryannygard/.local/share/virtualenvs/selenium-8l3DWFXO/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/Users/ryannygard/.local/share/virtualenvs/selenium-8l3DWFXO/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidArgumentException: Message: Requested environment is not available

Solution

  • For Firefox images path should be /wd/hub.