Skip to content

Commit aed740b

Browse files
committed
Update CDP Mode
1 parent 7cfa79a commit aed740b

File tree

8 files changed

+27
-6
lines changed

8 files changed

+27
-6
lines changed

examples/cdp_mode/ReadMe.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,8 @@ sb.cdp.get_text(selector)
445445
sb.cdp.get_title()
446446
sb.cdp.get_current_url()
447447
sb.cdp.get_origin()
448-
sb.cdp.get_page_source()
448+
sb.cdp.get_html(include_shadow_dom=True)
449+
sb.cdp.get_page_source(include_shadow_dom=True)
449450
sb.cdp.get_user_agent()
450451
sb.cdp.get_cookie_string()
451452
sb.cdp.get_locale_code()

help_docs/method_summary.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ self.refresh()
4040
# Duplicates: self.refresh_page(), self.reload_page(), self.reload()
4141
self.get_current_url()
4242
self.get_origin()
43+
self.get_html()
4344
self.get_page_source()
4445
self.get_title()
4546
# Duplicates: self.get_page_title()

seleniumbase/core/browser_launcher.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -838,6 +838,7 @@ def uc_open_with_cdp_mode(driver, url=None, **kwargs):
838838
cdp.get_element_position = CDPM.get_element_position
839839
cdp.get_gui_element_rect = CDPM.get_gui_element_rect
840840
cdp.get_gui_element_center = CDPM.get_gui_element_center
841+
cdp.get_html = CDPM.get_html
841842
cdp.get_page_source = CDPM.get_page_source
842843
cdp.get_user_agent = CDPM.get_user_agent
843844
cdp.get_cookie_string = CDPM.get_cookie_string
@@ -934,6 +935,7 @@ def uc_open_with_cdp_mode(driver, url=None, **kwargs):
934935
cdp.core = core_items
935936
cdp.loop = cdp.get_event_loop()
936937
driver.cdp = cdp
938+
driver.solve_captcha = CDPM.solve_captcha
937939
driver._is_using_cdp = True
938940

939941

seleniumbase/core/sb_cdp.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1185,7 +1185,14 @@ def get_origin(self):
11851185
self.page.evaluate("window.location.origin")
11861186
)
11871187

1188-
def get_page_source(self):
1188+
def get_html(self, include_shadow_dom=True):
1189+
return self.get_page_source(
1190+
include_shadow_dom=include_shadow_dom
1191+
)
1192+
1193+
def get_page_source(self, include_shadow_dom=True):
1194+
if include_shadow_dom:
1195+
return self.find_element("html").get_html()
11891196
try:
11901197
source = self.loop.run_until_complete(
11911198
self.page.evaluate("document.documentElement.outerHTML")

seleniumbase/fixtures/base_case.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1293,8 +1293,11 @@ def get_origin(self):
12931293
self.__check_scope()
12941294
return self.execute_script("return window.location.origin;")
12951295

1296-
def get_page_source(self):
1297-
if self.__is_cdp_swap_needed():
1296+
def get_html(self, *args, **kwargs):
1297+
return self.get_page_source(*args, **kwargs)
1298+
1299+
def get_page_source(self, *args, **kwargs):
1300+
if self.__is_cdp_swap_needed(*args, **kwargs):
12981301
return self.cdp.get_page_source()
12991302
self.wait_for_ready_state_complete()
13001303
if self.__needs_minimum_wait:

seleniumbase/undetected/cdp_driver/config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ def __init__(
130130
"--no-default-browser-check",
131131
"--homepage=about:blank",
132132
"--no-pings",
133+
"--enable-unsafe-extension-debugging",
133134
"--wm-window-animations-disabled",
134135
"--animation-duration-scale=0",
135136
"--enable-privacy-sandbox-ads-apis",

seleniumbase/undetected/cdp_driver/element.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -806,7 +806,10 @@ async def set_text_async(self, value):
806806

807807
async def get_html_async(self):
808808
return await self._tab.send(
809-
cdp.dom.get_outer_html(backend_node_id=self.backend_node_id)
809+
cdp.dom.get_outer_html(
810+
backend_node_id=self.backend_node_id,
811+
include_shadow_dom=True,
812+
)
810813
)
811814

812815
@property

seleniumbase/undetected/cdp_driver/tab.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -899,7 +899,10 @@ async def get_content(self):
899899
"""Gets the current page source content (html)"""
900900
doc: cdp.dom.Node = await self.send(cdp.dom.get_document(-1, True))
901901
return await self.send(
902-
cdp.dom.get_outer_html(backend_node_id=doc.backend_node_id)
902+
cdp.dom.get_outer_html(
903+
backend_node_id=doc.backend_node_id,
904+
include_shadow_dom=True,
905+
)
903906
)
904907

905908
async def maximize(self):

0 commit comments

Comments
 (0)