Skip to content

Commit 006f957

Browse files
committed
Update Safari compatibility
1 parent 3d25e5a commit 006f957

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

seleniumbase/core/browser_launcher.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2444,13 +2444,34 @@ def get_local_driver(
24442444
)
24452445
return driver
24462446
elif browser_name == constants.Browser.SAFARI:
2447+
from selenium.webdriver.safari.options import Options as SafariOptions
2448+
24472449
arg_join = " ".join(sys.argv)
24482450
if ("-n" in sys.argv) or (" -n=" in arg_join) or (arg_join == "-c"):
24492451
# Skip if multithreaded
24502452
raise Exception("Can't run Safari tests in multithreaded mode!")
24512453
warnings.simplefilter("ignore", category=DeprecationWarning)
24522454
service = SafariService(quiet=False)
2453-
return webdriver.safari.webdriver.WebDriver(service=service)
2455+
options = SafariOptions()
2456+
if (
2457+
selenium4_or_newer
2458+
and page_load_strategy
2459+
and page_load_strategy.lower() in ["eager", "none"]
2460+
):
2461+
# Only change it if not "normal", which is the default.
2462+
options.page_load_strategy = page_load_strategy.lower()
2463+
elif (
2464+
selenium4_or_newer
2465+
and not page_load_strategy
2466+
and hasattr(settings, "PAGE_LOAD_STRATEGY")
2467+
and settings.PAGE_LOAD_STRATEGY
2468+
and settings.PAGE_LOAD_STRATEGY.lower() in ["eager", "none"]
2469+
):
2470+
# Only change it if not "normal", which is the default.
2471+
options.page_load_strategy = settings.PAGE_LOAD_STRATEGY.lower()
2472+
return webdriver.safari.webdriver.WebDriver(
2473+
service=service, options=options
2474+
)
24542475
elif browser_name == constants.Browser.OPERA:
24552476
try:
24562477
if LOCAL_OPERADRIVER and os.path.exists(LOCAL_OPERADRIVER):

0 commit comments

Comments
 (0)