Skip to content

Commit 4e73b97

Browse files
committed
move chromium_options to conftest.py
1 parent 4dd1169 commit 4e73b97

File tree

2 files changed

+35
-13
lines changed

2 files changed

+35
-13
lines changed

py/conftest.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,3 +370,29 @@ def firefox_options(request):
370370
if request.config.option.headless:
371371
options.add_argument("-headless")
372372
return options
373+
374+
375+
@pytest.fixture
376+
def chromium_options(request):
377+
try:
378+
driver_option = request.config.option.drivers[0].lower()
379+
except (AttributeError, TypeError):
380+
raise Exception("This test requires a --driver to be specified")
381+
382+
# Skip if not Chrome or Edge
383+
if driver_option not in ("chrome", "edge"):
384+
pytest.skip(f"This test requires Chrome or Edge, got {driver_option}")
385+
386+
# skip tests in the 'remote' directory if run with a local driver
387+
if request.node.path.parts[-2] == "remote" and get_driver_class(driver_option) != "Remote":
388+
pytest.skip(f"Remote tests can't be run with driver '{driver_option}'")
389+
390+
if driver_option == "chrome":
391+
options = webdriver.ChromeOptions()
392+
elif driver_option == "edge":
393+
options = webdriver.EdgeOptions()
394+
395+
if request.config.option.headless:
396+
options.add_argument("--headless=new")
397+
398+
return options

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

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@
2323
from python.runfiles import Runfiles
2424

2525
from selenium import webdriver
26-
from selenium.webdriver.chrome.options import Options as ChromeOptions
2726
from selenium.webdriver.common.by import By
28-
from selenium.webdriver.edge.options import Options as EdgeOptions
2927
from selenium.webdriver.support.wait import WebDriverWait
3028

3129
EXTENSION_ID = "[email protected]"
@@ -123,31 +121,29 @@ def pages_chromium(self, webserver, chromium_driver):
123121
class Pages:
124122
def load(self, name):
125123
chromium_driver.get(webserver.where_is(name, localhost=False))
124+
126125
return Pages()
127126

128127
@pytest.fixture
129-
def chromium_driver(self, request):
128+
def chromium_driver(self, chromium_options, request):
129+
"""Create a Chrome/Edge driver with webextension support enabled."""
130130
driver_option = request.config.option.drivers[0].lower()
131131

132132
if driver_option == "chrome":
133-
options = ChromeOptions()
134133
browser_class = webdriver.Chrome
135134
elif driver_option == "edge":
136-
options = EdgeOptions()
137135
browser_class = webdriver.Edge
138-
else:
139-
pytest.skip(f"This test requires Chrome or Edge, got {driver_option}")
140136

141137
temp_dir = tempfile.mkdtemp()
142138

143-
options.enable_bidi = True
144-
options.enable_webextensions = True
145-
options.add_argument(f"--user-data-dir={temp_dir}")
139+
chromium_options.enable_bidi = True
140+
chromium_options.enable_webextensions = True
141+
chromium_options.add_argument(f"--user-data-dir={temp_dir}")
146142

147-
driver = browser_class(options=options)
143+
chromium_driver = browser_class(options=chromium_options)
148144

149-
yield driver
150-
driver.quit()
145+
yield chromium_driver
146+
chromium_driver.quit()
151147

152148
def test_install_extension_path(self, chromium_driver, pages_chromium):
153149
"""Test installing an extension from a directory path."""

0 commit comments

Comments
 (0)