Update Safari compatibility

This commit is contained in:
Michael Mintz 2023-03-04 01:09:27 -05:00
parent 3d25e5af75
commit 006f95785d
1 changed files with 22 additions and 1 deletions

View File

@ -2444,13 +2444,34 @@ def get_local_driver(
) )
return driver return driver
elif browser_name == constants.Browser.SAFARI: elif browser_name == constants.Browser.SAFARI:
from selenium.webdriver.safari.options import Options as SafariOptions
arg_join = " ".join(sys.argv) arg_join = " ".join(sys.argv)
if ("-n" in sys.argv) or (" -n=" in arg_join) or (arg_join == "-c"): if ("-n" in sys.argv) or (" -n=" in arg_join) or (arg_join == "-c"):
# Skip if multithreaded # Skip if multithreaded
raise Exception("Can't run Safari tests in multithreaded mode!") raise Exception("Can't run Safari tests in multithreaded mode!")
warnings.simplefilter("ignore", category=DeprecationWarning) warnings.simplefilter("ignore", category=DeprecationWarning)
service = SafariService(quiet=False) service = SafariService(quiet=False)
return webdriver.safari.webdriver.WebDriver(service=service) options = SafariOptions()
if (
selenium4_or_newer
and page_load_strategy
and page_load_strategy.lower() in ["eager", "none"]
):
# Only change it if not "normal", which is the default.
options.page_load_strategy = page_load_strategy.lower()
elif (
selenium4_or_newer
and not page_load_strategy
and hasattr(settings, "PAGE_LOAD_STRATEGY")
and settings.PAGE_LOAD_STRATEGY
and settings.PAGE_LOAD_STRATEGY.lower() in ["eager", "none"]
):
# Only change it if not "normal", which is the default.
options.page_load_strategy = settings.PAGE_LOAD_STRATEGY.lower()
return webdriver.safari.webdriver.WebDriver(
service=service, options=options
)
elif browser_name == constants.Browser.OPERA: elif browser_name == constants.Browser.OPERA:
try: try:
if LOCAL_OPERADRIVER and os.path.exists(LOCAL_OPERADRIVER): if LOCAL_OPERADRIVER and os.path.exists(LOCAL_OPERADRIVER):