Skip to content

Commit c88cc84

Browse files
committed
add chrome test for webextension from path
1 parent 9d5c344 commit c88cc84

File tree

2 files changed

+30
-3
lines changed

2 files changed

+30
-3
lines changed

py/conftest.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,10 @@ def get_options(driver_class, config):
237237
options.web_socket_url = True
238238
options.unhandled_prompt_behavior = "ignore"
239239

240+
# Enable webextensions for Chrome when BiDi is enabled
241+
if driver_class == "Chrome" and hasattr(options, "enable_webextensions"):
242+
options.enable_webextensions = True
243+
240244
return options
241245

242246

py/test/selenium/webdriver/common/bidi_webextension_tests.py

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,36 @@ def test_webextension_initialized(driver):
6060
assert driver.webextension is not None
6161

6262

63-
@pytest.mark.xfail_chrome
6463
@pytest.mark.xfail_edge
6564
def test_install_extension_path(driver, pages):
66-
"""Test installing an extension from a directory path."""
65+
"""Test installing an extension from a directory path.
66+
67+
Note: For Chrome, webextensions are enabled when BiDi is used from conftest.py for this test.
68+
You can also manually enable them using:
69+
70+
from selenium.webdriver.chrome.options import Options
71+
options = Options()
72+
options.enable_webextensions = True
73+
driver = webdriver.Chrome(options=options)
74+
75+
Or directly pass the required flags when creating the driver:
76+
77+
from selenium import webdriver
78+
from selenium.webdriver.chrome.options import Options
79+
80+
options = Options()
81+
options.add_argument("--remote-debugging-pipe")
82+
options.add_argument("--enable-unsafe-extension-debugging")
83+
84+
driver = webdriver.Chrome(options=options)
85+
"""
6786
path = os.path.join(extensions, EXTENSION_PATH)
6887

69-
ext_info = install_extension(driver, path=path)
88+
if driver.capabilities["browserName"].lower() == "chrome":
89+
# chrome does not uses extension id from manifest.json so we cannot assert the id
90+
ext_info = driver.webextension.install(path=path)
91+
else:
92+
ext_info = install_extension(driver, path=path)
7093
verify_extension_injection(driver, pages)
7194
uninstall_extension_and_verify_extension_uninstalled(driver, ext_info)
7295

0 commit comments

Comments
 (0)