SeleniumHQ/selenium · error · WebDriverException

This browser does not support Federated Credential Managemen

Error message

This browser does not support Federated Credential Management. Please ensure you're using a supported browser.

What it means

Raised by _require_fedcm_support() (called by the FedCM dialog/account properties) when the session capabilities do not advertise FedCM support. Selenium gates FedCM (Federated Credential Management) interaction behind a capability (ArgOptions.FEDCM_CAPABILITY) that the browser must accept; if it is absent/false, the FedCM dialog API is unavailable.

Source

Thrown at py/selenium/webdriver/remote/webdriver.py:1660

            `driver.fedcm.account_list`
            `driver.fedcm.select_account(0)`
            `driver.fedcm.accept()`
            `driver.fedcm.dismiss()`
            `driver.fedcm.enable_delay()`
            `driver.fedcm.disable_delay()`
            `driver.fedcm.reset_cooldown()`
        """
        return self._fedcm

    @property
    def supports_fedcm(self) -> bool:
        """Returns whether the browser supports FedCM capabilities."""
        return self.capabilities.get(ArgOptions.FEDCM_CAPABILITY, False)

    def _require_fedcm_support(self) -> None:
        """Raises an exception if FedCM is not supported."""
        if not self.supports_fedcm:
            raise WebDriverException(
                "This browser does not support Federated Credential Management. "
                "Please ensure you're using a supported browser."
            )

    @property
    def dialog(self) -> Dialog:
        """Returns the FedCM dialog object for interaction."""
        from selenium.webdriver.common.fedcm.dialog import Dialog

        self._require_fedcm_support()
        return Dialog(self)

    def fedcm_dialog(self, timeout=5, poll_frequency=0.5, ignored_exceptions=None):
        """Waits for and returns the FedCM dialog.

        Args:
            timeout: How long to wait for the dialog.
            poll_frequency: How frequently to poll.

View on GitHub (pinned to aa36b38e69)

Solutions

  1. Enable the FedCM capability at session creation: options.enableFedCm = True (or set_capability with ArgOptions.FEDCM_CAPABILITY).
  2. Use a recent Chrome/Chromium build that supports FedCM.
  3. Check driver.supports_fedcm before touching driver.dialog or driver.fedcm methods.

Example fix

# before
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=options)
driver.dialog  # raises

# after
options = webdriver.ChromeOptions()
options.enableFedCm = True
driver = webdriver.Chrome(options=options)
driver.dialog  # works
Defensive patterns

Strategy: validation

Validate before calling

if not driver.supports_fedcm:
    raise RuntimeError('Enable FedCM: options.enableFedCm = True, use a supported browser')
driver.dialog

Type guard

def fedcm_supported(driver) -> bool:
    return bool(driver.supports_fedcm)

Try / catch

from selenium.common.exceptions import WebDriverException
try:
    driver.dialog
except WebDriverException:
    # skip FedCM interaction; browser/capability unsupported
    pass

Prevention

When it happens

Trigger: Accessing driver.dialog (or any property that calls _require_fedcm_support()) on a session whose capabilities do not have the FedCM capability set to True. The check is `not self.capabilities.get(ArgOptions.FEDCM_CAPABILITY, False)`.

Common situations: Using a browser/version that does not support FedCM, or forgetting to enable the FedCM capability at session creation. FedCM support is browser-dependent (recent Chrome versions).

Related errors


AI-assisted analysis of SeleniumHQ/selenium@aa36b38e69 (2026-08-14). Data as JSON: /api/errors/991a8129cda2bda4. Report an issue: GitHub.