Skip to content

Commit 9a665cb

Browse files
committed
Update CDP Mode
1 parent ead4451 commit 9a665cb

2 files changed

Lines changed: 23 additions & 5 deletions

File tree

seleniumbase/core/sb_cdp.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1974,7 +1974,10 @@ def _on_a_cf_turnstile_page(self, source=None):
19741974

19751975
def _on_an_incapsula_hcaptcha_page(self, *args, **kwargs):
19761976
self.loop.run_until_complete(self.page.wait())
1977-
if self.is_element_visible('iframe[src*="_Incapsula_Resource?"]'):
1977+
if (
1978+
self.is_element_visible('iframe[src*="_Incapsula_Resource?"]')
1979+
or self.is_element_visible("iframe[data-hcaptcha-widget-id]")
1980+
):
19781981
return True
19791982
return False
19801983

@@ -2052,13 +2055,16 @@ def __gui_click_recaptcha(self, use_cdp=False):
20522055
return False
20532056

20542057
def __cdp_click_incapsula_hcaptcha(self):
2055-
selector = None
2058+
selector = "iframe[data-hcaptcha-widget-id]"
20562059
if self.is_element_visible('iframe[src*="_Incapsula_Resource?"]'):
20572060
outer_selector = 'iframe[src*="_Incapsula_Resource?"]'
2058-
selector = "iframe[data-hcaptcha-widget-id]"
20592061
element = self.get_nested_element(outer_selector, selector)
20602062
if not element:
20612063
return False
2064+
elif self.is_element_visible(selector):
2065+
element = self.select(selector, timeout=0.1)
2066+
if not element:
2067+
return False
20622068
else:
20632069
return False
20642070
time.sleep(0.05)

seleniumbase/undetected/cdp_driver/cdp_util.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -599,6 +599,18 @@ async def start(
599599
sb_config.disable_csp = True
600600
if "binary_location" in kwargs and not browser_executable_path:
601601
browser_executable_path = kwargs["binary_location"]
602+
if not user_data_dir and "--user-data-dir" in arg_join:
603+
udd_string = None
604+
if "--user-data-dir=" in arg_join:
605+
udd_string = arg_join.split("--user-data-dir=")[1].split(" ")[0]
606+
elif "--user-data-dir " in arg_join:
607+
udd_string = arg_join.split("--user-data-dir ")[1].split(" ")[0]
608+
if udd_string:
609+
if udd_string.startswith('"') and udd_string.endswith('"'):
610+
udd_string = udd_string[1:-1]
611+
elif udd_string.startswith("'") and udd_string.endswith("'"):
612+
udd_string = udd_string[1:-1]
613+
user_data_dir = udd_string
602614
if not browser_executable_path:
603615
browser = None
604616
if "browser" in kwargs:
@@ -611,9 +623,9 @@ async def start(
611623
br_string = arg_join.split("--browser ")[1].split(" ")[0]
612624
if br_string:
613625
if br_string.startswith('"') and br_string.endswith('"'):
614-
br_string = proxy_string[1:-1]
626+
br_string = br_string[1:-1]
615627
elif br_string.startswith("'") and br_string.endswith("'"):
616-
br_string = proxy_string[1:-1]
628+
br_string = br_string[1:-1]
617629
browser = br_string
618630
if not browser:
619631
if "--edge" in sys_argv:

0 commit comments

Comments
 (0)