@@ -4090,6 +4090,88 @@ def get_new_driver(
4090
4090
"Browser: {%s} is not a valid browser option. "
4091
4091
"Valid options = {%s}" % (browser, valid_browsers)
4092
4092
)
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()
4093
4175
# Launch a web browser
4094
4176
new_driver = browser_launcher.get_driver(
4095
4177
browser_name=browser_name,
@@ -4435,7 +4517,12 @@ def load_cookies(self, name="cookies.txt"):
4435
4517
"""Loads the page cookies from the "saved_cookies" folder."""
4436
4518
cookies = self.get_saved_cookies(name)
4437
4519
self.wait_for_ready_state_complete()
4520
+ origin = self.get_origin()
4521
+ trim_origin = origin.split("://")[-1]
4438
4522
for cookie in cookies:
4523
+ if "domain" in cookie:
4524
+ if cookie["domain"] not in origin:
4525
+ cookie["domain"] = trim_origin
4439
4526
if "expiry" in cookie:
4440
4527
del cookie["expiry"]
4441
4528
self.driver.add_cookie(cookie)
@@ -4656,30 +4743,6 @@ def activate_cdp_mode(self, url=None):
4656
4743
if hasattr(self.driver, "_is_using_uc") and self.driver._is_using_uc:
4657
4744
self.driver.uc_open_with_cdp_mode(url)
4658
4745
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()
4683
4746
self.get_new_driver(undetectable=True)
4684
4747
self.driver.uc_open_with_cdp_mode(url)
4685
4748
self.cdp = self.driver.cdp
@@ -14941,31 +15004,6 @@ def setUp(self, masterqa_mode=False):
14941
15004
self.__js_start_time = int(time.time() * 1000.0)
14942
15005
else:
14943
15006
# 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()
14969
15007
self.driver = self.get_new_driver(
14970
15008
browser=self.browser,
14971
15009
headless=self.headless,
0 commit comments