File tree Expand file tree Collapse file tree 3 files changed +55
-16
lines changed Expand file tree Collapse file tree 3 files changed +55
-16
lines changed Original file line number Diff line number Diff line change @@ -1251,6 +1251,10 @@ def _uc_gui_click_captcha(
12511251 )
12521252 ):
12531253 frame = '[data-testid*="challenge-"] div'
1254+ elif driver .is_element_present (
1255+ "form.turnstile div#turnstile-widget div:not([class])"
1256+ ):
1257+ frame = "form.turnstile #turnstile-widget div:not([class])"
12541258 elif driver .is_element_present (
12551259 'form div:not([class]):has(input[name*="cf-turn"])'
12561260 ):
@@ -1291,6 +1295,23 @@ def _uc_gui_click_captcha(
12911295 driver .cdp .evaluate (script )
12921296 else :
12931297 driver .execute_script (script )
1298+ elif (
1299+ driver .is_element_present ("form" )
1300+ and driver .is_element_present (
1301+ "form.turnstile #turnstile-widget > div:not([class])"
1302+ )
1303+ ):
1304+ script = (
1305+ """var $elements = document.querySelectorAll(
1306+ 'form.turnstile #turnstile-widget');
1307+ var index = 0, length = $elements.length;
1308+ for(; index < length; index++){
1309+ $elements[index].setAttribute('align', 'left');}"""
1310+ )
1311+ if __is_cdp_swap_needed (driver ):
1312+ driver .cdp .evaluate (script )
1313+ else :
1314+ driver .execute_script (script )
12941315 if not is_in_frame or needs_switch :
12951316 # Currently not in frame (or nested frame outside CF one)
12961317 try :
Original file line number Diff line number Diff line change @@ -452,14 +452,19 @@ def reconnect(self, timeout=0.1):
452452 self .service .start ()
453453 with suppress (Exception ):
454454 self .start_session ()
455+ time .sleep (0.0075 )
455456 with suppress (Exception ):
456- if self .current_url .startswith ("chrome-extension://" ):
457- self .close ()
458- if self .service .is_connectable ():
459- self .stop_client ()
460- self .service .stop ()
461- self .service .start ()
462- self .start_session ()
457+ for i in range (5 ):
458+ if self .current_url .startswith ("chrome-extension://" ):
459+ self .close ()
460+ if self .service .is_connectable ():
461+ self .stop_client ()
462+ self .service .stop ()
463+ self .service .start ()
464+ self .start_session ()
465+ time .sleep (0.0075 )
466+ else :
467+ break
463468 self ._is_connected = True
464469
465470 def disconnect (self ):
@@ -480,14 +485,19 @@ def connect(self):
480485 self .service .start ()
481486 with suppress (Exception ):
482487 self .start_session ()
488+ time .sleep (0.0075 )
483489 with suppress (Exception ):
484- if self .current_url .startswith ("chrome-extension://" ):
485- self .close ()
486- if self .service .is_connectable ():
487- self .stop_client ()
488- self .service .stop ()
489- self .service .start ()
490- self .start_session ()
490+ for i in range (5 ):
491+ if self .current_url .startswith ("chrome-extension://" ):
492+ self .close ()
493+ if self .service .is_connectable ():
494+ self .stop_client ()
495+ self .service .stop ()
496+ self .service .start ()
497+ self .start_session ()
498+ time .sleep (0.0075 )
499+ else :
500+ break
491501 self ._is_connected = True
492502
493503 def start_session (self , capabilities = None ):
Original file line number Diff line number Diff line change @@ -226,7 +226,11 @@ async def start_async(*args, **kwargs) -> Browser:
226226 binary_location = None
227227 if "browser_executable_path" in kwargs :
228228 binary_location = kwargs ["browser_executable_path" ]
229- if shared_utils .is_chrome_130_or_newer (binary_location ):
229+ if (
230+ shared_utils .is_chrome_130_or_newer (binary_location )
231+ and "user_data_dir" in kwargs
232+ and kwargs ["user_data_dir" ]
233+ ):
230234 if "headless" in kwargs :
231235 headless = kwargs ["headless" ]
232236 decoy_args = kwargs
@@ -257,7 +261,11 @@ def start_sync(*args, **kwargs) -> Browser:
257261 binary_location = None
258262 if "browser_executable_path" in kwargs :
259263 binary_location = kwargs ["browser_executable_path" ]
260- if shared_utils .is_chrome_130_or_newer (binary_location ):
264+ if (
265+ shared_utils .is_chrome_130_or_newer (binary_location )
266+ and "user_data_dir" in kwargs
267+ and kwargs ["user_data_dir" ]
268+ ):
261269 if "headless" in kwargs :
262270 headless = kwargs ["headless" ]
263271 decoy_args = kwargs
You can’t perform that action at this time.
0 commit comments