@@ -725,7 +725,7 @@ def _on_a_cf_turnstile_page(driver):
725
725
source = driver .get_page_source ()
726
726
if (
727
727
'data-callback="onCaptchaSuccess"' in source
728
- or "cf-turnstile-wrapper " in source
728
+ or "cf-turnstile-" in source
729
729
):
730
730
return True
731
731
return False
@@ -802,6 +802,17 @@ def _uc_gui_click_captcha(
802
802
else :
803
803
visible_iframe = False
804
804
if (
805
+ frame != "iframe"
806
+ and driver .is_element_present ('[name*="cf-turnstile-"]' )
807
+ and driver .is_element_present ("%s div[style]" % frame )
808
+ ):
809
+ frame = "%s div[style]" % frame
810
+ elif (
811
+ driver .is_element_present ('[name*="cf-turnstile-"]' )
812
+ and driver .is_element_present ("div.spacer div[style]" )
813
+ ):
814
+ frame = "div.spacer div[style]"
815
+ elif (
805
816
frame != "iframe"
806
817
and driver .is_element_present (
807
818
"%s .cf-turnstile-wrapper" % frame
@@ -981,6 +992,11 @@ def uc_gui_handle_cf(driver, frame="iframe"):
981
992
'[data-callback="onCaptchaSuccess"]'
982
993
):
983
994
frame = '[data-callback="onCaptchaSuccess"]'
995
+ elif (
996
+ driver .is_element_present ('[name*="cf-turnstile-"]' )
997
+ and driver .is_element_present ("div.spacer div[style]" )
998
+ ):
999
+ frame = "div.spacer div[style]"
984
1000
else :
985
1001
return
986
1002
if not is_in_frame or needs_switch :
@@ -1000,7 +1016,10 @@ def uc_gui_handle_cf(driver, frame="iframe"):
1000
1016
pyautogui .press ("\t " )
1001
1017
time .sleep (0.02 )
1002
1018
active_element_css = js_utils .get_active_element_css (driver )
1003
- if active_element_css == "div.cf-turnstile-wrapper" :
1019
+ if (
1020
+ active_element_css == "div.cf-turnstile-wrapper"
1021
+ or active_element_css .startswith ("div#PYMIw2" )
1022
+ ):
1004
1023
found_checkbox = True
1005
1024
break
1006
1025
time .sleep (0.02 )
0 commit comments