Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

from copy import deepcopy
import pytest
pytestmark = pytest.mark.asyncio
async def test_marionette_fallback_webdriver_session(configuration, geckodriver):
config = deepcopy(configuration)
config["capabilities"]["webSocketUrl"] = True
prefs = config["capabilities"]["moz:firefoxOptions"].get("prefs", {})
prefs.update({"remote.active-protocols": 2})
config["capabilities"]["moz:firefoxOptions"]["prefs"] = prefs
try:
driver = geckodriver(config=config)
driver.new_session()
assert driver.session.capabilities.get("webSocketUrl") is None
# Sanity check that Marionette works as expected and by default returns
# at least one window handle
assert len(driver.session.handles) >= 1
finally:
await driver.stop()
# WebDriver BiDi has to be re-enabled. Because we cannot easily
# get rid of the value let geckodriver overwrite it with the current
# default.
prefs.update({"remote.active-protocols": 3})
driver = geckodriver(config=config)
driver.new_session()
assert driver.session.capabilities.get("webSocketUrl") is not None