Skip to content

[🐛 Bug]: [py] FedCM dialog not opening #15581

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
cgoldberg opened this issue Apr 6, 2025 · 8 comments · Fixed by #15583
Closed

[🐛 Bug]: [py] FedCM dialog not opening #15581

cgoldberg opened this issue Apr 6, 2025 · 8 comments · Fixed by #15583
Labels
C-py Python Bindings D-chrome I-defect Something is not working as intended OS-linux

Comments

@cgoldberg
Copy link
Contributor

cgoldberg commented Apr 6, 2025

Description

I'm not even sure what FedCM is/does, but there is a Python test in Selenium's CI that keeps failing: py/test/selenium/webdriver/common/fedcm_tests.py

When I run this test locally, I get 2 failures:

FAILED py/test/selenium/webdriver/common/fedcm_tests.py::TestFedCM::test_trigger_and_verify_dialog_subtitle - selenium.common.exceptions.TimeoutException: Message:
FAILED py/test/selenium/webdriver/common/fedcm_tests.py::TestFedCM::test_trigger_and_verify_account_list - selenium.common.exceptions.TimeoutException: Message:

They both seem to be timing out waiting for the FedCM dialog to open. I can reproduce this using the code below.

Environment info:

  • Chrome/ChromeDriver 135.0.7049.42
  • Python 3.13
  • Linux (Debian Stable)

Reproducible Code

from selenium import webdriver

driver = webdriver.Chrome()
dialog = driver.fedcm_dialog()

Debugging Logs

DEBUG:selenium.webdriver.common.selenium_manager:Selenium Manager binary found at: /home/cgoldberg617/code/selenium/py/selenium/webdriver/common/linux/selenium-manager
DEBUG:selenium.webdriver.common.selenium_manager:Executing process: /home/cgoldberg617/code/selenium/py/selenium/webdriver/common/linux/selenium-manager --browser chrome --debug --language-binding python --output json
DEBUG:selenium.webdriver.common.selenium_manager:chromedriver not found in PATH
DEBUG:selenium.webdriver.common.selenium_manager:chrome not found in PATH
DEBUG:selenium.webdriver.common.selenium_manager:chrome not found in the system
DEBUG:selenium.webdriver.common.selenium_manager:Required browser: chrome 135.0.7049.42
DEBUG:selenium.webdriver.common.selenium_manager:chrome 135.0.7049.42 already exists
DEBUG:selenium.webdriver.common.selenium_manager:chrome 135.0.7049.42 is available at /home/cgoldberg617/.cache/selenium/chrome/linux64/135.0.7049.42/chrome
DEBUG:selenium.webdriver.common.selenium_manager:Required driver: chromedriver 135.0.7049.42
DEBUG:selenium.webdriver.common.selenium_manager:chromedriver 135.0.7049.42 already in the cache
DEBUG:selenium.webdriver.common.selenium_manager:Driver path: /home/cgoldberg617/.cache/selenium/chromedriver/linux64/135.0.7049.42/chromedriver
DEBUG:selenium.webdriver.common.selenium_manager:Browser path: /home/cgoldberg617/.cache/selenium/chrome/linux64/135.0.7049.42/chrome
DEBUG:selenium.webdriver.common.service:Started executable: `/home/cgoldberg617/.cache/selenium/chromedriver/linux64/135.0.7049.42/chromedriver` in a child process with pid: 10142 using 0 to output -3
DEBUG:selenium.webdriver.remote.remote_connection:POST http://localhost:47285/session {'capabilities': {'firstMatch': [{}], 'alwaysMatch': {'browserName': 'chrome', 'pageLoadStrategy': <PageLoadStrategy.normal: 'normal'>, 'browserVersion': None, 'goog:chromeOptions': {'extensions': [], 'binary': '/home/cgoldberg617/.cache/selenium/chrome/linux64/135.0.7049.42/chrome', 'args': []}}}}
DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): localhost:47285
DEBUG:urllib3.connectionpool:http://localhost:47285 "POST /session HTTP/1.1" 200 0
DEBUG:selenium.webdriver.remote.remote_connection:Remote response: status=200 | data={"value":{"capabilities":{"acceptInsecureCerts":false,"browserName":"chrome","browserVersion":"135.0.7049.42","chrome":{"chromedriverVersion":"135.0.7049.42 (0f351bbd2617e0f775543271f34b7d241f8ebcdc-refs/branch-heads/7049@{#1349})","userDataDir":"/tmp/.org.chromium.Chromium.s1s4ly"},"fedcm:accounts":true,"goog:chromeOptions":{"debuggerAddress":"localhost:43219"},"networkConnectionEnabled":false,"pageLoadStrategy":"normal","platformName":"linux","proxy":{},"setWindowRect":true,"strictFileInteractability":false,"timeouts":{"implicit":0,"pageLoad":300000,"script":30000},"unhandledPromptBehavior":"dismiss and notify","webauthn:extension:credBlob":true,"webauthn:extension:largeBlob":true,"webauthn:extension:minPinLength":true,"webauthn:extension:prf":true,"webauthn:virtualAuthenticators":true},"sessionId":"15600463268ae0c481d365a96dcb1188"}} | headers=HTTPHeaderDict({'Content-Length': '848', 'Content-Type': 'application/json; charset=utf-8', 'cache-control': 'no-cache'})
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
DEBUG:selenium.webdriver.remote.remote_connection:GET http://localhost:47285/session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype {}
DEBUG:urllib3.connectionpool:http://localhost:47285 "GET /session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype HTTP/1.1" 404 0
DEBUG:selenium.webdriver.remote.remote_connection:Remote response: status=404 | data={"value":{"error":"no such alert","message":"no such alert\n  (Session info: chrome=135.0.7049.42)","stacktrace":"#0 0x55f44ca0ce6a \u003Cunknown>\n#1 0x55f44c4be493 \u003Cunknown>\n#2 0x55f44c51856a \u003Cunknown>\n#3 0x55f44c535752 \u003Cunknown>\n#4 0x55f44c55b7b5 \u003Cunknown>\n#5 0x55f44c535523 \u003Cunknown>\n#6 0x55f44c501ef3 \u003Cunknown>\n#7 0x55f44c502b51 \u003Cunknown>\n#8 0x55f44c9d1d2b \u003Cunknown>\n#9 0x55f44c9d5c01 \u003Cunknown>\n#10 0x55f44c9b9512 \u003Cunknown>\n#11 0x55f44c9d6774 \u003Cunknown>\n#12 0x55f44c99d90f \u003Cunknown>\n#13 0x55f44c9fafb8 \u003Cunknown>\n#14 0x55f44c9fb196 \u003Cunknown>\n#15 0x55f44ca0bcb6 \u003Cunknown>\n#16 0x7f2df95381f5 \u003Cunknown>\n"}} | headers=HTTPHeaderDict({'Content-Length': '702', 'Content-Type': 'application/json; charset=utf-8', 'cache-control': 'no-cache'})
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
DEBUG:selenium.webdriver.remote.remote_connection:GET http://localhost:47285/session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype {}
DEBUG:urllib3.connectionpool:http://localhost:47285 "GET /session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype HTTP/1.1" 404 0
DEBUG:selenium.webdriver.remote.remote_connection:Remote response: status=404 | data={"value":{"error":"no such alert","message":"no such alert\n  (Session info: chrome=135.0.7049.42)","stacktrace":"#0 0x55f44ca0ce6a \u003Cunknown>\n#1 0x55f44c4be493 \u003Cunknown>\n#2 0x55f44c51856a \u003Cunknown>\n#3 0x55f44c535752 \u003Cunknown>\n#4 0x55f44c55b7b5 \u003Cunknown>\n#5 0x55f44c535523 \u003Cunknown>\n#6 0x55f44c501ef3 \u003Cunknown>\n#7 0x55f44c502b51 \u003Cunknown>\n#8 0x55f44c9d1d2b \u003Cunknown>\n#9 0x55f44c9d5c01 \u003Cunknown>\n#10 0x55f44c9b9512 \u003Cunknown>\n#11 0x55f44c9d6774 \u003Cunknown>\n#12 0x55f44c99d90f \u003Cunknown>\n#13 0x55f44c9fafb8 \u003Cunknown>\n#14 0x55f44c9fb196 \u003Cunknown>\n#15 0x55f44ca0bcb6 \u003Cunknown>\n#16 0x7f2df95381f5 \u003Cunknown>\n"}} | headers=HTTPHeaderDict({'Content-Length': '702', 'Content-Type': 'application/json; charset=utf-8', 'cache-control': 'no-cache'})
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
DEBUG:selenium.webdriver.remote.remote_connection:GET http://localhost:47285/session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype {}
DEBUG:urllib3.connectionpool:http://localhost:47285 "GET /session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype HTTP/1.1" 404 0
DEBUG:selenium.webdriver.remote.remote_connection:Remote response: status=404 | data={"value":{"error":"no such alert","message":"no such alert\n  (Session info: chrome=135.0.7049.42)","stacktrace":"#0 0x55f44ca0ce6a \u003Cunknown>\n#1 0x55f44c4be493 \u003Cunknown>\n#2 0x55f44c51856a \u003Cunknown>\n#3 0x55f44c535752 \u003Cunknown>\n#4 0x55f44c55b7b5 \u003Cunknown>\n#5 0x55f44c535523 \u003Cunknown>\n#6 0x55f44c501ef3 \u003Cunknown>\n#7 0x55f44c502b51 \u003Cunknown>\n#8 0x55f44c9d1d2b \u003Cunknown>\n#9 0x55f44c9d5c01 \u003Cunknown>\n#10 0x55f44c9b9512 \u003Cunknown>\n#11 0x55f44c9d6774 \u003Cunknown>\n#12 0x55f44c99d90f \u003Cunknown>\n#13 0x55f44c9fafb8 \u003Cunknown>\n#14 0x55f44c9fb196 \u003Cunknown>\n#15 0x55f44ca0bcb6 \u003Cunknown>\n#16 0x7f2df95381f5 \u003Cunknown>\n"}} | headers=HTTPHeaderDict({'Content-Length': '702', 'Content-Type': 'application/json; charset=utf-8', 'cache-control': 'no-cache'})
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
DEBUG:selenium.webdriver.remote.remote_connection:GET http://localhost:47285/session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype {}
DEBUG:urllib3.connectionpool:http://localhost:47285 "GET /session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype HTTP/1.1" 404 0
DEBUG:selenium.webdriver.remote.remote_connection:Remote response: status=404 | data={"value":{"error":"no such alert","message":"no such alert\n  (Session info: chrome=135.0.7049.42)","stacktrace":"#0 0x55f44ca0ce6a \u003Cunknown>\n#1 0x55f44c4be493 \u003Cunknown>\n#2 0x55f44c51856a \u003Cunknown>\n#3 0x55f44c535752 \u003Cunknown>\n#4 0x55f44c55b7b5 \u003Cunknown>\n#5 0x55f44c535523 \u003Cunknown>\n#6 0x55f44c501ef3 \u003Cunknown>\n#7 0x55f44c502b51 \u003Cunknown>\n#8 0x55f44c9d1d2b \u003Cunknown>\n#9 0x55f44c9d5c01 \u003Cunknown>\n#10 0x55f44c9b9512 \u003Cunknown>\n#11 0x55f44c9d6774 \u003Cunknown>\n#12 0x55f44c99d90f \u003Cunknown>\n#13 0x55f44c9fafb8 \u003Cunknown>\n#14 0x55f44c9fb196 \u003Cunknown>\n#15 0x55f44ca0bcb6 \u003Cunknown>\n#16 0x7f2df95381f5 \u003Cunknown>\n"}} | headers=HTTPHeaderDict({'Content-Length': '702', 'Content-Type': 'application/json; charset=utf-8', 'cache-control': 'no-cache'})
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
DEBUG:selenium.webdriver.remote.remote_connection:GET http://localhost:47285/session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype {}
DEBUG:urllib3.connectionpool:http://localhost:47285 "GET /session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype HTTP/1.1" 404 0
DEBUG:selenium.webdriver.remote.remote_connection:Remote response: status=404 | data={"value":{"error":"no such alert","message":"no such alert\n  (Session info: chrome=135.0.7049.42)","stacktrace":"#0 0x55f44ca0ce6a \u003Cunknown>\n#1 0x55f44c4be493 \u003Cunknown>\n#2 0x55f44c51856a \u003Cunknown>\n#3 0x55f44c535752 \u003Cunknown>\n#4 0x55f44c55b7b5 \u003Cunknown>\n#5 0x55f44c535523 \u003Cunknown>\n#6 0x55f44c501ef3 \u003Cunknown>\n#7 0x55f44c502b51 \u003Cunknown>\n#8 0x55f44c9d1d2b \u003Cunknown>\n#9 0x55f44c9d5c01 \u003Cunknown>\n#10 0x55f44c9b9512 \u003Cunknown>\n#11 0x55f44c9d6774 \u003Cunknown>\n#12 0x55f44c99d90f \u003Cunknown>\n#13 0x55f44c9fafb8 \u003Cunknown>\n#14 0x55f44c9fb196 \u003Cunknown>\n#15 0x55f44ca0bcb6 \u003Cunknown>\n#16 0x7f2df95381f5 \u003Cunknown>\n"}} | headers=HTTPHeaderDict({'Content-Length': '702', 'Content-Type': 'application/json; charset=utf-8', 'cache-control': 'no-cache'})
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
DEBUG:selenium.webdriver.remote.remote_connection:GET http://localhost:47285/session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype {}
DEBUG:urllib3.connectionpool:http://localhost:47285 "GET /session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype HTTP/1.1" 404 0
DEBUG:selenium.webdriver.remote.remote_connection:Remote response: status=404 | data={"value":{"error":"no such alert","message":"no such alert\n  (Session info: chrome=135.0.7049.42)","stacktrace":"#0 0x55f44ca0ce6a \u003Cunknown>\n#1 0x55f44c4be493 \u003Cunknown>\n#2 0x55f44c51856a \u003Cunknown>\n#3 0x55f44c535752 \u003Cunknown>\n#4 0x55f44c55b7b5 \u003Cunknown>\n#5 0x55f44c535523 \u003Cunknown>\n#6 0x55f44c501ef3 \u003Cunknown>\n#7 0x55f44c502b51 \u003Cunknown>\n#8 0x55f44c9d1d2b \u003Cunknown>\n#9 0x55f44c9d5c01 \u003Cunknown>\n#10 0x55f44c9b9512 \u003Cunknown>\n#11 0x55f44c9d6774 \u003Cunknown>\n#12 0x55f44c99d90f \u003Cunknown>\n#13 0x55f44c9fafb8 \u003Cunknown>\n#14 0x55f44c9fb196 \u003Cunknown>\n#15 0x55f44ca0bcb6 \u003Cunknown>\n#16 0x7f2df95381f5 \u003Cunknown>\n"}} | headers=HTTPHeaderDict({'Content-Length': '702', 'Content-Type': 'application/json; charset=utf-8', 'cache-control': 'no-cache'})
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
DEBUG:selenium.webdriver.remote.remote_connection:GET http://localhost:47285/session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype {}
DEBUG:urllib3.connectionpool:http://localhost:47285 "GET /session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype HTTP/1.1" 404 0
DEBUG:selenium.webdriver.remote.remote_connection:Remote response: status=404 | data={"value":{"error":"no such alert","message":"no such alert\n  (Session info: chrome=135.0.7049.42)","stacktrace":"#0 0x55f44ca0ce6a \u003Cunknown>\n#1 0x55f44c4be493 \u003Cunknown>\n#2 0x55f44c51856a \u003Cunknown>\n#3 0x55f44c535752 \u003Cunknown>\n#4 0x55f44c55b7b5 \u003Cunknown>\n#5 0x55f44c535523 \u003Cunknown>\n#6 0x55f44c501ef3 \u003Cunknown>\n#7 0x55f44c502b51 \u003Cunknown>\n#8 0x55f44c9d1d2b \u003Cunknown>\n#9 0x55f44c9d5c01 \u003Cunknown>\n#10 0x55f44c9b9512 \u003Cunknown>\n#11 0x55f44c9d6774 \u003Cunknown>\n#12 0x55f44c99d90f \u003Cunknown>\n#13 0x55f44c9fafb8 \u003Cunknown>\n#14 0x55f44c9fb196 \u003Cunknown>\n#15 0x55f44ca0bcb6 \u003Cunknown>\n#16 0x7f2df95381f5 \u003Cunknown>\n"}} | headers=HTTPHeaderDict({'Content-Length': '702', 'Content-Type': 'application/json; charset=utf-8', 'cache-control': 'no-cache'})
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
DEBUG:selenium.webdriver.remote.remote_connection:GET http://localhost:47285/session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype {}
DEBUG:urllib3.connectionpool:http://localhost:47285 "GET /session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype HTTP/1.1" 404 0
DEBUG:selenium.webdriver.remote.remote_connection:Remote response: status=404 | data={"value":{"error":"no such alert","message":"no such alert\n  (Session info: chrome=135.0.7049.42)","stacktrace":"#0 0x55f44ca0ce6a \u003Cunknown>\n#1 0x55f44c4be493 \u003Cunknown>\n#2 0x55f44c51856a \u003Cunknown>\n#3 0x55f44c535752 \u003Cunknown>\n#4 0x55f44c55b7b5 \u003Cunknown>\n#5 0x55f44c535523 \u003Cunknown>\n#6 0x55f44c501ef3 \u003Cunknown>\n#7 0x55f44c502b51 \u003Cunknown>\n#8 0x55f44c9d1d2b \u003Cunknown>\n#9 0x55f44c9d5c01 \u003Cunknown>\n#10 0x55f44c9b9512 \u003Cunknown>\n#11 0x55f44c9d6774 \u003Cunknown>\n#12 0x55f44c99d90f \u003Cunknown>\n#13 0x55f44c9fafb8 \u003Cunknown>\n#14 0x55f44c9fb196 \u003Cunknown>\n#15 0x55f44ca0bcb6 \u003Cunknown>\n#16 0x7f2df95381f5 \u003Cunknown>\n"}} | headers=HTTPHeaderDict({'Content-Length': '702', 'Content-Type': 'application/json; charset=utf-8', 'cache-control': 'no-cache'})
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
DEBUG:selenium.webdriver.remote.remote_connection:GET http://localhost:47285/session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype {}
DEBUG:urllib3.connectionpool:http://localhost:47285 "GET /session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype HTTP/1.1" 404 0
DEBUG:selenium.webdriver.remote.remote_connection:Remote response: status=404 | data={"value":{"error":"no such alert","message":"no such alert\n  (Session info: chrome=135.0.7049.42)","stacktrace":"#0 0x55f44ca0ce6a \u003Cunknown>\n#1 0x55f44c4be493 \u003Cunknown>\n#2 0x55f44c51856a \u003Cunknown>\n#3 0x55f44c535752 \u003Cunknown>\n#4 0x55f44c55b7b5 \u003Cunknown>\n#5 0x55f44c535523 \u003Cunknown>\n#6 0x55f44c501ef3 \u003Cunknown>\n#7 0x55f44c502b51 \u003Cunknown>\n#8 0x55f44c9d1d2b \u003Cunknown>\n#9 0x55f44c9d5c01 \u003Cunknown>\n#10 0x55f44c9b9512 \u003Cunknown>\n#11 0x55f44c9d6774 \u003Cunknown>\n#12 0x55f44c99d90f \u003Cunknown>\n#13 0x55f44c9fafb8 \u003Cunknown>\n#14 0x55f44c9fb196 \u003Cunknown>\n#15 0x55f44ca0bcb6 \u003Cunknown>\n#16 0x7f2df95381f5 \u003Cunknown>\n"}} | headers=HTTPHeaderDict({'Content-Length': '702', 'Content-Type': 'application/json; charset=utf-8', 'cache-control': 'no-cache'})
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
DEBUG:selenium.webdriver.remote.remote_connection:GET http://localhost:47285/session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype {}
DEBUG:urllib3.connectionpool:http://localhost:47285 "GET /session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype HTTP/1.1" 404 0
DEBUG:selenium.webdriver.remote.remote_connection:Remote response: status=404 | data={"value":{"error":"no such alert","message":"no such alert\n  (Session info: chrome=135.0.7049.42)","stacktrace":"#0 0x55f44ca0ce6a \u003Cunknown>\n#1 0x55f44c4be493 \u003Cunknown>\n#2 0x55f44c51856a \u003Cunknown>\n#3 0x55f44c535752 \u003Cunknown>\n#4 0x55f44c55b7b5 \u003Cunknown>\n#5 0x55f44c535523 \u003Cunknown>\n#6 0x55f44c501ef3 \u003Cunknown>\n#7 0x55f44c502b51 \u003Cunknown>\n#8 0x55f44c9d1d2b \u003Cunknown>\n#9 0x55f44c9d5c01 \u003Cunknown>\n#10 0x55f44c9b9512 \u003Cunknown>\n#11 0x55f44c9d6774 \u003Cunknown>\n#12 0x55f44c99d90f \u003Cunknown>\n#13 0x55f44c9fafb8 \u003Cunknown>\n#14 0x55f44c9fb196 \u003Cunknown>\n#15 0x55f44ca0bcb6 \u003Cunknown>\n#16 0x7f2df95381f5 \u003Cunknown>\n"}} | headers=HTTPHeaderDict({'Content-Length': '702', 'Content-Type': 'application/json; charset=utf-8', 'cache-control': 'no-cache'})
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
DEBUG:selenium.webdriver.remote.remote_connection:GET http://localhost:47285/session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype {}
DEBUG:urllib3.connectionpool:http://localhost:47285 "GET /session/15600463268ae0c481d365a96dcb1188/fedcm/getdialogtype HTTP/1.1" 404 0
DEBUG:selenium.webdriver.remote.remote_connection:Remote response: status=404 | data={"value":{"error":"no such alert","message":"no such alert\n  (Session info: chrome=135.0.7049.42)","stacktrace":"#0 0x55f44ca0ce6a \u003Cunknown>\n#1 0x55f44c4be493 \u003Cunknown>\n#2 0x55f44c51856a \u003Cunknown>\n#3 0x55f44c535752 \u003Cunknown>\n#4 0x55f44c55b7b5 \u003Cunknown>\n#5 0x55f44c535523 \u003Cunknown>\n#6 0x55f44c501ef3 \u003Cunknown>\n#7 0x55f44c502b51 \u003Cunknown>\n#8 0x55f44c9d1d2b \u003Cunknown>\n#9 0x55f44c9d5c01 \u003Cunknown>\n#10 0x55f44c9b9512 \u003Cunknown>\n#11 0x55f44c9d6774 \u003Cunknown>\n#12 0x55f44c99d90f \u003Cunknown>\n#13 0x55f44c9fafb8 \u003Cunknown>\n#14 0x55f44c9fb196 \u003Cunknown>\n#15 0x55f44ca0bcb6 \u003Cunknown>\n#16 0x7f2df95381f5 \u003Cunknown>\n"}} | headers=HTTPHeaderDict({'Content-Length': '702', 'Content-Type': 'application/json; charset=utf-8', 'cache-control': 'no-cache'})
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
Traceback (most recent call last):
  File "/home/cgoldberg617/code/selenium/py/sel.py", line 9, in <module>
    dialog = driver.fedcm_dialog()
  File "/home/cgoldberg617/code/selenium/py/selenium/webdriver/remote/webdriver.py", line 1532, in fedcm_dialog
    return wait.until(lambda _: _check_fedcm())
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/cgoldberg617/code/selenium/py/selenium/webdriver/support/wait.py", line 146, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:

ℹ️ Last known working version: N/A

@cgoldberg cgoldberg added A-needs-triaging A Selenium member will evaluate this soon! C-py Python Bindings I-defect Something is not working as intended labels Apr 6, 2025
@selenium-ci
Copy link
Member

@cgoldberg, thank you for creating this issue. We will troubleshoot it as soon as we can.

Selenium Triage Team: remember to follow the Triage Guide

@navin772
Copy link
Member

navin772 commented Apr 6, 2025

Hi @cgoldberg, I see that the tests pass fine in macOS. In Linux, I was able to use FedCM functionality but Bazel was having some issues with all the tests (was getting the --user-data-dir error which I need to fix), so couldn't run the bazel tests for FedCM.

from selenium import webdriver
driver = webdriver.Chrome()
dialog = driver.fedcm_dialog()

This is not the right way to use the FedCM functionality, FedCM has some dependencies.

For quickly testing out FedCM, you can start a HTTP server in this dir - https://github.com/SeleniumHQ/selenium/tree/trunk/common/src/web/fedcm using python -m http.server.
And then change the relative value of config.json in fedcm.html to:
let configURL = http://localhost:8000/config.json; // change with your port

Now you can test FedCM related functionality by pointing your tests to http://localhost:8000/fedcm.html like this:

from selenium import webdriver
import time

driver = webdriver.Chrome()

driver.get("http://localhost:8000/fedcm.html")
driver.execute_script("triggerFedCm();"). # this needs to be called for fedcm_dialog() to work
dialog = driver.fedcm_dialog()

time.sleep(1)
driver.quit()

Using the above script you can see that the FedCM dialog box is visible.

I am not sure why only those 2 tests are failing in the CI for Linux only, other tests also use the exact same pattern for calling the FedCM dialog box and they pass. I tried increasing the timeout to 10 here but it still fails!

@cgoldberg
Copy link
Contributor Author

@navin772 thanks for the information... I will try using FedCM locally using your instructions and report back with the results.

FWIW, I get that same --user-data-dir error running ANY Chrome/Edge tests with bazel. I haven't been able to run any tests with bazel since Chrome 134 was released. I am only able to run tests with PyTest directly (where they run fine). If you can figure out how to fix this, that would be amazing... I am totally stumped. (Firefox and WebKitGTK work fine with bazel).

@cgoldberg
Copy link
Contributor Author

@navin772 I just tried again, and the issue still occurs when running your code. It loads http://localhost:8000/fedcm.html but the FedCM dialog never opens. I even tried with driver.fedcm_dialog(timeout=60), so I don't think it's just a timing issue.

@navin772
Copy link
Member

navin772 commented Apr 6, 2025

@cgoldberg, just confirming, did you change this value here to:
let configURL = http://localhost:8000/config.json;

Also, in which directory did you start the http server?

Can you also go to chrome://flags -> search for fedcm and enable all of those and try again?

For me, in my linux device, I am easily able to trigger the FedCM dialog box.

@cgoldberg
Copy link
Contributor Author

@navin772 very sorry... I just tried again and I had it configured incorrectly. The dialog DOES eventually open, it just takes a while. So this looks like a timing issue and bumping the timeout up in the tests will likely fix it.

@cgoldberg cgoldberg removed the A-needs-triaging A Selenium member will evaluate this soon! label Apr 6, 2025
@cgoldberg
Copy link
Contributor Author

@navin772 hah! I figured it out and got all the tests passing locally without raising the timeout. See #15583

@navin772
Copy link
Member

navin772 commented Apr 7, 2025

Thanks @cgoldberg, this looks good!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-py Python Bindings D-chrome I-defect Something is not working as intended OS-linux
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants