Skip to content

Commit f70cf86

Browse files
committed
Update CDP Mode
1 parent a84f5c3 commit f70cf86

File tree

5 files changed

+19
-3
lines changed

5 files changed

+19
-3
lines changed

seleniumbase/core/browser_launcher.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -682,8 +682,10 @@ def uc_open_with_cdp_mode(driver, url=None):
682682
cdp.gui_hover_element = CDPM.gui_hover_element
683683
cdp.gui_hover_and_click = CDPM.gui_hover_and_click
684684
cdp.internalize_links = CDPM.internalize_links
685+
cdp.open_new_window = CDPM.open_new_window
685686
cdp.switch_to_window = CDPM.switch_to_window
686687
cdp.switch_to_newest_window = CDPM.switch_to_newest_window
688+
cdp.open_new_tab = CDPM.open_new_tab
687689
cdp.switch_to_tab = CDPM.switch_to_tab
688690
cdp.switch_to_newest_tab = CDPM.switch_to_newest_tab
689691
cdp.close_active_tab = CDPM.close_active_tab

seleniumbase/core/sb_cdp.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ def get(self, url):
106106
driver = self.driver
107107
if hasattr(driver, "cdp_base"):
108108
driver = driver.cdp_base
109-
self.page = self.loop.run_until_complete(driver.get(url))
109+
self.loop.run_until_complete(self.page.get(url))
110110
url_protocol = url.split(":")[0]
111111
safe_url = True
112112
if url_protocol not in ["about", "data", "chrome"]:
@@ -1014,12 +1014,22 @@ def reset_window_size(self):
10141014
self.set_window_rect(x, y, width, height)
10151015
self.__add_light_pause()
10161016

1017+
def open_new_window(self, url=None, switch_to=True):
1018+
return self.open_new_tab(url=url, switch_to=switch_to)
1019+
10171020
def switch_to_window(self, window):
10181021
self.switch_to_tab(window)
10191022

10201023
def switch_to_newest_window(self):
10211024
self.switch_to_tab(-1)
10221025

1026+
def open_new_tab(self, url=None, switch_to=True):
1027+
if not isinstance(url, str):
1028+
url = "about:blank"
1029+
self.loop.run_until_complete(self.page.get(url, new_tab=True))
1030+
if switch_to:
1031+
self.switch_to_newest_tab()
1032+
10231033
def switch_to_tab(self, tab):
10241034
driver = self.driver
10251035
if hasattr(driver, "cdp_base"):

seleniumbase/fixtures/base_case.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3896,6 +3896,9 @@ def set_content_to_parent_frame(self):
38963896

38973897
def open_new_window(self, switch_to=True):
38983898
"""Opens a new browser tab/window and switches to it by default."""
3899+
if self.__is_cdp_swap_needed():
3900+
self.cdp.open_new_tab(switch_to=switch_to)
3901+
return
38993902
self.wait_for_ready_state_complete()
39003903
if switch_to:
39013904
try:
@@ -10339,7 +10342,7 @@ def wait_for_text_not_visible(
1033910342
timeout = self.__get_new_timeout(timeout)
1034010343
selector, by = self.__recalculate_selector(selector, by)
1034110344
if self.__is_cdp_swap_needed():
10342-
return self.cdp.wait_for_text(
10345+
return self.cdp.wait_for_text_not_visible(
1034310346
text, selector=selector, timeout=timeout
1034410347
)
1034510348
return page_actions.wait_for_text_not_visible(

seleniumbase/undetected/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,7 @@ def disconnect(self):
477477
with suppress(Exception):
478478
if self.service.is_connectable():
479479
self.stop_client()
480+
time.sleep(0.003)
480481
self.service.stop()
481482
self._is_connected = False
482483

seleniumbase/undetected/cdp_driver/browser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -792,7 +792,7 @@ async def clear(self):
792792
connection = self._browser.connection
793793
cookies = await connection.send(cdp.network.get_cookies())
794794
if cookies:
795-
await connection.send(cdp.network.clear_cookies())
795+
await connection.send(cdp.storage.clear_cookies())
796796

797797

798798
class HTTPApi:

0 commit comments

Comments
 (0)