Skip to content

Commit 4f2caff

Browse files
authored
Merge pull request #4012 from seleniumbase/cdp-mode-patch-63
CDP Mode: Patch 63
2 parents b9a9ff2 + 4ffa0f1 commit 4f2caff

File tree

11 files changed

+272
-51
lines changed

11 files changed

+272
-51
lines changed

examples/cdp_mode/ReadMe.md

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -189,14 +189,17 @@ from seleniumbase import SB
189189
with SB(uc=True, test=True, locale="en", ad_block=True) as sb:
190190
url = "https://www.hyatt.com/"
191191
sb.activate_cdp_mode(url)
192-
sb.sleep(2.5)
193-
sb.cdp.click_if_visible('button[aria-label="Close"]')
194-
sb.cdp.click_if_visible("#onetrust-reject-all-handler")
195-
sb.sleep(2)
192+
sb.sleep(3.5)
193+
sb.click_if_visible('button[aria-label="Close"]')
194+
sb.click_if_visible("#onetrust-reject-all-handler")
195+
sb.sleep(1)
196196
location = "Anaheim, CA, USA"
197-
sb.cdp.type('input[data-id="location"]', location)
198-
sb.cdp.click("button.quickbookSearchFormButton")
199-
sb.sleep(5)
197+
sb.type('input[id="search-term"]', location)
198+
sb.sleep(1)
199+
sb.click('li[data-js="suggestion"]')
200+
sb.sleep(1)
201+
sb.click("button.be-button-shop")
202+
sb.sleep(6)
200203
card_info = 'div[data-booking-status="BOOKABLE"] [class*="HotelCard_info"]'
201204
hotels = sb.cdp.select_all(card_info)
202205
print("Hyatt Hotels in %s:" % location)
@@ -274,22 +277,21 @@ from seleniumbase import SB
274277
with SB(uc=True, test=True, ad_block=True) as sb:
275278
url = "https://www.walmart.com/"
276279
sb.activate_cdp_mode(url)
277-
sb.sleep(2.5)
278-
sb.cdp.click_if_visible('[data-automation-id*="close-mark"]')
279-
sb.sleep(0.3)
280-
sb.cdp.mouse_click('input[aria-label="Search"]')
280+
sb.sleep(2.8)
281+
sb.click('input[aria-label="Search"]')
281282
sb.sleep(1.2)
282283
search = "Settlers of Catan Board Game"
283284
required_text = "Catan"
284-
sb.cdp.press_keys('input[aria-label="Search"]', search + "\n")
285+
sb.press_keys('input[aria-label="Search"]', search + "\n")
285286
sb.sleep(3.8)
286287
if sb.is_element_visible("#px-captcha"):
287-
sb.cdp.gui_click_and_hold("#px-captcha", 12)
288-
sb.sleep(3.2)
288+
sb.cdp.gui_click_and_hold("#px-captcha", 7.2)
289+
sb.sleep(4.2)
289290
if sb.is_element_visible("#px-captcha"):
290-
sb.cdp.gui_click_and_hold("#px-captcha", 12)
291+
sb.cdp.gui_click_and_hold("#px-captcha", 4.2)
291292
sb.sleep(3.2)
292293
sb.cdp.remove_elements('[data-testid="skyline-ad"]')
294+
sb.cdp.remove_elements('[data-testid="sba-container"]')
293295
print('*** Walmart Search for "%s":' % search)
294296
print(' (Results must contain "%s".)' % required_text)
295297
unique_item_text = []

examples/cdp_mode/raw_consecutive_c.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
sb.activate_cdp_mode(url)
77
sb.sleep(2.2)
88
sb.uc_gui_click_captcha()
9-
sb.sleep(2.2)
9+
sb.sleep(2.6)
1010
sb.uc_gui_click_captcha()
1111
sb.sleep(2)

examples/cdp_mode/raw_hyatt.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@
33
with SB(uc=True, test=True, locale="en", ad_block=True) as sb:
44
url = "https://www.hyatt.com/"
55
sb.activate_cdp_mode(url)
6-
sb.sleep(2.5)
7-
sb.cdp.click_if_visible('button[aria-label="Close"]')
8-
sb.cdp.click_if_visible("#onetrust-reject-all-handler")
9-
sb.sleep(2)
6+
sb.sleep(3.5)
7+
sb.click_if_visible('button[aria-label="Close"]')
8+
sb.click_if_visible("#onetrust-reject-all-handler")
9+
sb.sleep(1)
1010
location = "Anaheim, CA, USA"
11-
sb.cdp.type('input[data-id="location"]', location)
12-
sb.cdp.click("button.quickbookSearchFormButton")
13-
sb.sleep(5)
11+
sb.type('input[id="search-term"]', location)
12+
sb.sleep(1)
13+
sb.click('li[data-js="suggestion"]')
14+
sb.sleep(1)
15+
sb.click("button.be-button-shop")
16+
sb.sleep(6)
1417
card_info = 'div[data-booking-status="BOOKABLE"] [class*="HotelCard_info"]'
1518
hotels = sb.cdp.select_all(card_info)
1619
print("Hyatt Hotels in %s:" % location)

examples/cdp_mode/raw_nordstrom.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,4 @@
2323
price = item.querySelector('div div span[aria-hidden="true"]')
2424
if price:
2525
price_text = price.text
26-
print("* %s (%s)" % (description.text, price_text))
26+
print("* %s (%s)" % (description.text, price_text))

examples/cdp_mode/raw_walmart.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,21 @@
33
with SB(uc=True, test=True, ad_block=True) as sb:
44
url = "https://www.walmart.com/"
55
sb.activate_cdp_mode(url)
6-
sb.sleep(2.5)
7-
sb.cdp.click_if_visible('[data-automation-id*="close-mark"]')
8-
sb.sleep(0.3)
9-
sb.cdp.mouse_click('input[aria-label="Search"]')
6+
sb.sleep(2.8)
7+
sb.click('input[aria-label="Search"]')
108
sb.sleep(1.2)
119
search = "Settlers of Catan Board Game"
1210
required_text = "Catan"
13-
sb.cdp.press_keys('input[aria-label="Search"]', search + "\n")
11+
sb.press_keys('input[aria-label="Search"]', search + "\n")
1412
sb.sleep(3.8)
1513
if sb.is_element_visible("#px-captcha"):
16-
sb.cdp.gui_click_and_hold("#px-captcha", 12)
17-
sb.sleep(3.2)
14+
sb.cdp.gui_click_and_hold("#px-captcha", 7.2)
15+
sb.sleep(4.2)
1816
if sb.is_element_visible("#px-captcha"):
19-
sb.cdp.gui_click_and_hold("#px-captcha", 12)
17+
sb.cdp.gui_click_and_hold("#px-captcha", 4.2)
2018
sb.sleep(3.2)
2119
sb.cdp.remove_elements('[data-testid="skyline-ad"]')
20+
sb.cdp.remove_elements('[data-testid="sba-container"]')
2221
print('*** Walmart Search for "%s":' % search)
2322
print(' (Results must contain "%s".)' % required_text)
2423
unique_item_text = []

examples/presenter/uc_presentation_4.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -684,14 +684,17 @@ def test_presentation_4(self):
684684
with SB(uc=True, test=True, locale="en", ad_block=True) as sb:
685685
url = "https://www.hyatt.com/"
686686
sb.activate_cdp_mode(url)
687-
sb.sleep(2.5)
688-
sb.cdp.click_if_visible('button[aria-label="Close"]')
689-
sb.cdp.click_if_visible("#onetrust-reject-all-handler")
690-
sb.sleep(2)
687+
sb.sleep(3.5)
688+
sb.click_if_visible('button[aria-label="Close"]')
689+
sb.click_if_visible("#onetrust-reject-all-handler")
690+
sb.sleep(1)
691691
location = "Anaheim, CA, USA"
692-
sb.cdp.type('input[data-id="location"]', location)
693-
sb.cdp.click("button.quickbookSearchFormButton")
694-
sb.sleep(5)
692+
sb.type('input[id="search-term"]', location)
693+
sb.sleep(1)
694+
sb.click('li[data-js="suggestion"]')
695+
sb.sleep(1)
696+
sb.click("button.be-button-shop")
697+
sb.sleep(6)
695698
card_info = (
696699
'div[data-booking-status="BOOKABLE"] [class*="HotelCard_info"]'
697700
)
@@ -887,7 +890,7 @@ def test_presentation_4(self):
887890
)
888891
if price:
889892
price_text = price.text
890-
print("* %s (%s)" % (description.text, price_text))
893+
print("* %s (%s)" % (description.text, price_text))
891894

892895
self.create_presentation(theme="serif", transition="none")
893896
self.add_slide(

requirements.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ trio==0.27.0;python_version<"3.9"
4646
trio>=0.31.0,<1;python_version>="3.9"
4747
trio-websocket~=0.12.2
4848
wsproto==1.2.0
49-
websocket-client~=1.8.0
49+
websocket-client~=1.8.0;python_version<"3.9"
50+
websocket-client~=1.9.0;python_version>="3.9"
5051
selenium==4.27.1;python_version<"3.9"
5152
selenium==4.32.0;python_version>="3.9" and python_version<"3.10"
5253
selenium==4.36.0;python_version>="3.10"
@@ -73,6 +74,7 @@ soupsieve~=2.8;python_version>="3.9"
7374
beautifulsoup4~=4.14.2
7475
pyotp==2.9.0
7576
python-xlib==0.33;platform_system=="Linux"
77+
PyAutoGUI>=0.9.54;platform_system=="Linux"
7678
markdown-it-py==3.0.0;python_version<"3.10"
7779
markdown-it-py==4.0.0;python_version>="3.10"
7880
mdurl==0.1.2

seleniumbase/__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# seleniumbase package
2-
__version__ = "4.42.2"
2+
__version__ = "4.42.3"

seleniumbase/core/sb_cdp.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,10 @@ def click(self, selector, timeout=None):
712712
self.__slow_mode_pause_if_set()
713713
element = self.find_element(selector, timeout=timeout)
714714
element.scroll_into_view()
715-
element.click()
715+
if element.tag_name == "div" or element.tag_name == "input":
716+
element.mouse_click() # Simulated click (not PyAutoGUI)
717+
else:
718+
element.click()
716719
self.__slow_mode_pause_if_set()
717720
self.loop.run_until_complete(self.page.wait())
718721

0 commit comments

Comments
 (0)