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(
1251
1251
)
1252
1252
):
1253
1253
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])"
1254
1258
elif driver .is_element_present (
1255
1259
'form div:not([class]):has(input[name*="cf-turn"])'
1256
1260
):
@@ -1291,6 +1295,23 @@ def _uc_gui_click_captcha(
1291
1295
driver .cdp .evaluate (script )
1292
1296
else :
1293
1297
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 )
1294
1315
if not is_in_frame or needs_switch :
1295
1316
# Currently not in frame (or nested frame outside CF one)
1296
1317
try :
Original file line number Diff line number Diff line change @@ -452,14 +452,19 @@ def reconnect(self, timeout=0.1):
452
452
self .service .start ()
453
453
with suppress (Exception ):
454
454
self .start_session ()
455
+ time .sleep (0.0075 )
455
456
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
463
468
self ._is_connected = True
464
469
465
470
def disconnect (self ):
@@ -480,14 +485,19 @@ def connect(self):
480
485
self .service .start ()
481
486
with suppress (Exception ):
482
487
self .start_session ()
488
+ time .sleep (0.0075 )
483
489
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
491
501
self ._is_connected = True
492
502
493
503
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:
226
226
binary_location = None
227
227
if "browser_executable_path" in kwargs :
228
228
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
+ ):
230
234
if "headless" in kwargs :
231
235
headless = kwargs ["headless" ]
232
236
decoy_args = kwargs
@@ -257,7 +261,11 @@ def start_sync(*args, **kwargs) -> Browser:
257
261
binary_location = None
258
262
if "browser_executable_path" in kwargs :
259
263
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
+ ):
261
269
if "headless" in kwargs :
262
270
headless = kwargs ["headless" ]
263
271
decoy_args = kwargs
You can’t perform that action at this time.
0 commit comments