@@ -4090,6 +4090,88 @@ def get_new_driver(
40904090 "Browser: {%s} is not a valid browser option. "
40914091 "Valid options = {%s}" % (browser, valid_browsers)
40924092 )
4093+ # Fix Chrome-130 issues by creating a user-data-dir in advance
4094+ if (
4095+ undetectable
4096+ and (
4097+ not user_data_dir
4098+ or not os.path.exists(user_data_dir)
4099+ or not any(os.scandir(user_data_dir))
4100+ )
4101+ and self.browser == "chrome"
4102+ ):
4103+ import tempfile
4104+ if not user_data_dir:
4105+ user_data_dir = os.path.normpath(tempfile.mkdtemp())
4106+ self.user_data_dir = user_data_dir
4107+ sb_config.user_data_dir = user_data_dir
4108+ try:
4109+ decoy_driver = browser_launcher.get_driver(
4110+ browser_name=browser_name,
4111+ headless=headless,
4112+ locale_code=locale_code,
4113+ use_grid=use_grid,
4114+ protocol=protocol,
4115+ servername=servername,
4116+ port=port,
4117+ proxy_string=proxy_string,
4118+ proxy_bypass_list=proxy_bypass_list,
4119+ proxy_pac_url=proxy_pac_url,
4120+ multi_proxy=multi_proxy,
4121+ user_agent=user_agent,
4122+ cap_file=cap_file,
4123+ cap_string=cap_string,
4124+ recorder_ext=recorder_ext,
4125+ disable_cookies=disable_cookies,
4126+ disable_js=disable_js,
4127+ disable_csp=disable_csp,
4128+ enable_ws=enable_ws,
4129+ enable_sync=enable_sync,
4130+ use_auto_ext=use_auto_ext,
4131+ undetectable=undetectable,
4132+ uc_cdp_events=uc_cdp_events,
4133+ uc_subprocess=uc_subprocess,
4134+ log_cdp_events=log_cdp_events,
4135+ no_sandbox=no_sandbox,
4136+ disable_gpu=disable_gpu,
4137+ headless1=headless1,
4138+ headless2=True,
4139+ incognito=incognito,
4140+ guest_mode=guest_mode,
4141+ dark_mode=dark_mode,
4142+ devtools=devtools,
4143+ remote_debug=remote_debug,
4144+ enable_3d_apis=enable_3d_apis,
4145+ swiftshader=swiftshader,
4146+ ad_block_on=ad_block_on,
4147+ host_resolver_rules=host_resolver_rules,
4148+ block_images=block_images,
4149+ do_not_track=do_not_track,
4150+ chromium_arg=chromium_arg,
4151+ firefox_arg=firefox_arg,
4152+ firefox_pref=firefox_pref,
4153+ user_data_dir=user_data_dir,
4154+ extension_zip=extension_zip,
4155+ extension_dir=extension_dir,
4156+ disable_features=disable_features,
4157+ binary_location=binary_location,
4158+ driver_version=driver_version,
4159+ page_load_strategy=page_load_strategy,
4160+ use_wire=use_wire,
4161+ external_pdf=external_pdf,
4162+ test_id=test_id,
4163+ mobile_emulator=is_mobile,
4164+ device_width=d_width,
4165+ device_height=d_height,
4166+ device_pixel_ratio=d_p_r,
4167+ browser=browser_name,
4168+ )
4169+ time.sleep(0.555)
4170+ except Exception:
4171+ pass
4172+ finally:
4173+ with suppress(Exception):
4174+ decoy_driver.quit()
40934175 # Launch a web browser
40944176 new_driver = browser_launcher.get_driver(
40954177 browser_name=browser_name,
@@ -4435,7 +4517,12 @@ def load_cookies(self, name="cookies.txt"):
44354517 """Loads the page cookies from the "saved_cookies" folder."""
44364518 cookies = self.get_saved_cookies(name)
44374519 self.wait_for_ready_state_complete()
4520+ origin = self.get_origin()
4521+ trim_origin = origin.split("://")[-1]
44384522 for cookie in cookies:
4523+ if "domain" in cookie:
4524+ if cookie["domain"] not in origin:
4525+ cookie["domain"] = trim_origin
44394526 if "expiry" in cookie:
44404527 del cookie["expiry"]
44414528 self.driver.add_cookie(cookie)
@@ -4656,30 +4743,6 @@ def activate_cdp_mode(self, url=None):
46564743 if hasattr(self.driver, "_is_using_uc") and self.driver._is_using_uc:
46574744 self.driver.uc_open_with_cdp_mode(url)
46584745 else:
4659- # Fix Chrome-130 issues by creating a user-data-dir in advance
4660- if (
4661- (
4662- not self.user_data_dir
4663- or not os.path.exists(self.user_data_dir)
4664- )
4665- and self.browser == "chrome"
4666- ):
4667- import tempfile
4668- user_data_dir = os.path.normpath(tempfile.mkdtemp())
4669- self.user_data_dir = user_data_dir
4670- sb_config.user_data_dir = user_data_dir
4671- try:
4672- driver = self.get_new_driver(
4673- user_data_dir=user_data_dir,
4674- undetectable=True,
4675- headless2=True,
4676- )
4677- time.sleep(0.555)
4678- except Exception:
4679- pass
4680- finally:
4681- with suppress(Exception):
4682- driver.quit()
46834746 self.get_new_driver(undetectable=True)
46844747 self.driver.uc_open_with_cdp_mode(url)
46854748 self.cdp = self.driver.cdp
@@ -14941,31 +15004,6 @@ def setUp(self, masterqa_mode=False):
1494115004 self.__js_start_time = int(time.time() * 1000.0)
1494215005 else:
1494315006 # Launch WebDriver for both pytest and pynose
14944-
14945- # Fix Chrome-130 issues by creating a user-data-dir in advance
14946- if (
14947- self.undetectable
14948- and (
14949- not self.user_data_dir
14950- or not os.path.exists(self.user_data_dir)
14951- )
14952- and self.browser == "chrome"
14953- ):
14954- import tempfile
14955- user_data_dir = os.path.normpath(tempfile.mkdtemp())
14956- self.user_data_dir = user_data_dir
14957- sb_config.user_data_dir = user_data_dir
14958- try:
14959- driver = self.get_new_driver(
14960- user_data_dir=user_data_dir,
14961- headless2=True,
14962- )
14963- time.sleep(0.555)
14964- except Exception:
14965- pass
14966- finally:
14967- with suppress(Exception):
14968- driver.quit()
1496915007 self.driver = self.get_new_driver(
1497015008 browser=self.browser,
1497115009 headless=self.headless,
0 commit comments