Skip to content

Commit e6b686d

Browse files
authored
Merge pull request #4049 from seleniumbase/more-chromium-updates
More Chromium updates
2 parents 7d0921b + 2012b91 commit e6b686d

33 files changed

+366
-171
lines changed

examples/cdp_mode/ReadMe.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ with SB(uc=True, test=True, locale="en", ad_block=True) as sb:
203203
card_info = 'div[data-booking-status="BOOKABLE"] [class*="HotelCard_info"]'
204204
hotels = sb.cdp.select_all(card_info)
205205
print("Hyatt Hotels in %s:" % location)
206-
print("(" + sb.cdp.get_text("ul.b-color_text-white") + ")")
206+
print("(" + sb.cdp.get_text('span[class*="summary_destination"]') + ")")
207207
if len(hotels) == 0:
208208
print("No availability over the selected dates!")
209209
for hotel in hotels:
@@ -331,12 +331,13 @@ with SB(uc=True, test=True, locale="en", pls="none") as sb:
331331
url = "https://www.nike.com/"
332332
sb.activate_cdp_mode(url)
333333
sb.sleep(2.5)
334-
sb.cdp.click('div[data-testid="user-tools-container"]')
334+
sb.click('[data-testid="user-tools-container"] search')
335335
sb.sleep(1.5)
336336
search = "Nike Air Force 1"
337-
sb.cdp.press_keys('input[type="search"]', search)
337+
sb.press_keys('input[type="search"]', search)
338338
sb.sleep(4)
339-
elements = sb.cdp.select_all('ul[data-testid*="products"] figure .details')
339+
details = 'ul[data-testid*="products"] figure .details'
340+
elements = sb.select_all(details)
340341
if elements:
341342
print('**** Found results for "%s": ****' % search)
342343
for element in elements:
@@ -528,6 +529,7 @@ sb.cdp.assert_in(first, second)
528529
sb.cdp.assert_not_in(first, second)
529530
sb.cdp.scroll_into_view(selector)
530531
sb.cdp.scroll_to_y(y)
532+
sb.cdp.scroll_by_y(y)
531533
sb.cdp.scroll_to_top()
532534
sb.cdp.scroll_to_bottom()
533535
sb.cdp.scroll_up(amount=25)

examples/cdp_mode/raw_cdp_copilot.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525
sb.wait_for_element_absent(stop_button, timeout=50)
2626
sb.wait_for_element(thumbs_up, timeout=20)
2727
sb.sleep(0.6)
28-
sb.click('button[data-testid*="scroll-to-bottom"]')
28+
scroll = 'button[data-testid*="scroll-to-bottom"]'
29+
sb.click_if_visible(scroll)
2930
sb.sleep(2.2)
3031
folder = "downloaded_files"
3132
file_name = "copilot_results.html"

examples/cdp_mode/raw_cdp_kohls.py

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,37 @@
11
from seleniumbase import sb_cdp
22

33
url = "https://www.kohls.com/"
4-
sb = sb_cdp.Chrome(url, locale="en", guest=True)
4+
sb = sb_cdp.Chrome(url, locale="en", ad_block=True)
55
sb.sleep(2.8)
6-
search = "Mickey Mouse 100 friends teal pillow"
7-
required_text = "Mickey"
6+
search = "Mickey Mouse Blanket"
7+
req_1 = "Mickey"
8+
req_2 = "Blanket"
89
sb.press_keys('input[name="search"]', search + "\n")
910
sb.sleep(5)
10-
for item in sb.find_elements("div.products-container-right"):
11+
item_selector = 'div[data-testid*="wallet-wrapper"]'
12+
if not sb.is_element_present(item_selector):
13+
item_selector = "li.products_grid"
14+
for item in sb.find_elements(item_selector):
1115
if "Sponsored" in item.text:
1216
item.remove_from_dom()
1317
sb.remove_elements("#tce-sticky-wrapper")
1418
sb.remove_elements("li.sponsored-product")
1519
sb.remove_elements("#tce-dec-ces-3-banner")
1620
print('*** Kohls Search for "%s":' % search)
17-
for item in sb.find_elements("ul.products a img"):
21+
print(' (Results must contain "%s" and "%s".)' % (req_1, req_2))
22+
title_selector = "div.prod_nameBlock p"
23+
if not sb.is_element_present(title_selector):
24+
title_selector = 'a[class*="sm:text"][href*="/product/"]'
25+
for item in sb.find_elements(title_selector):
1826
if item:
1927
item.flash(color="44CC88")
20-
title = item.get_attribute("title")
21-
if title and required_text in title:
22-
print("* " + title)
23-
sb.sleep(0.1)
28+
title = item.text
29+
if title:
30+
if (
31+
req_1.lower() in title.lower()
32+
and req_2.lower() in title.lower()
33+
):
34+
print("* " + title)
35+
sb.sleep(0.1)
2436
sb.sleep(1)
2537
sb.driver.stop()

examples/cdp_mode/raw_cdp_nike.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
url = "https://www.nike.com/"
44
sb = sb_cdp.Chrome(url)
5-
sb.click('div[data-testid="user-tools-container"]')
5+
sb.sleep(1.2)
6+
sb.click('[data-testid="user-tools-container"] search')
67
sb.sleep(1)
78
search = "Pegasus"
89
sb.press_keys('input[type="search"]', search)
910
sb.sleep(4)
10-
elements = sb.select_all('ul[data-testid*="products"] figure .details')
11+
details = 'ul[data-testid*="products"] figure .details'
12+
elements = sb.select_all(details)
1113
if elements:
1214
print('**** Found results for "%s": ****' % search)
1315
for element in elements:

examples/cdp_mode/raw_copilot.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
sb.wait_for_element_absent(stop_button, timeout=50)
2727
sb.wait_for_element(thumbs_up, timeout=20)
2828
sb.sleep(0.6)
29-
sb.click('button[data-testid*="scroll-to-bottom"]')
29+
scroll = 'button[data-testid*="scroll-to-bottom"]'
30+
sb.click_if_visible(scroll)
3031
sb.sleep(2.2)
3132
folder = "downloaded_files"
3233
file_name = "copilot_results.html"
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
from seleniumbase import SB
2+
3+
with SB(uc=True, test=True) as sb:
4+
url = "seleniumbase.io/apps/form_turnstile"
5+
sb.activate_cdp_mode(url)
6+
sb.press_keys("#name", "SeleniumBase")
7+
sb.press_keys("#email", "[email protected]")
8+
sb.press_keys("#phone", "1-555-555-5555")
9+
sb.click('[for="date"]')
10+
sb.click("td.is-today button")
11+
sb.click('div[class="select-wrapper"] input')
12+
sb.click('span:contains("9:00 PM")')
13+
sb.highlight_click('input[value="AR"] + span')
14+
sb.click('input[value="cc"] + span')
15+
sb.scroll_down(40)
16+
sb.uc_gui_click_captcha()
17+
sb.highlight("img#captcha-success", timeout=3)
18+
sb.highlight_click('button:contains("Request & Pay")')
19+
sb.highlight("img#submit-success")
20+
sb.highlight('button:contains("Success!")')

examples/cdp_mode/raw_hyatt.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
card_info = 'div[data-booking-status="BOOKABLE"] [class*="HotelCard_info"]'
1818
hotels = sb.cdp.select_all(card_info)
1919
print("Hyatt Hotels in %s:" % location)
20-
print("(" + sb.cdp.get_text("ul.b-color_text-white") + ")")
20+
print("(" + sb.cdp.get_text('span[class*="summary_destination"]') + ")")
2121
if len(hotels) == 0:
2222
print("No availability over the selected dates!")
2323
for hotel in hotels:

examples/cdp_mode/raw_kohls.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,34 @@
44
url = "https://www.kohls.com/"
55
sb.activate_cdp_mode(url)
66
sb.sleep(2.6)
7-
search = "Mickey Mouse 100 friends teal pillow"
8-
required_text = "Mickey"
7+
search = "Mickey Mouse Blanket"
8+
req_1 = "Mickey"
9+
req_2 = "Blanket"
910
sb.cdp.press_keys('input[name="search"]', search + "\n")
1011
sb.sleep(5)
11-
for item in sb.cdp.find_elements("div.products-container-right"):
12+
item_selector = 'div[data-testid*="wallet-wrapper"]'
13+
if not sb.is_element_present(item_selector):
14+
item_selector = "li.products_grid"
15+
for item in sb.cdp.find_elements(item_selector):
1216
if "Sponsored" in item.text:
1317
item.remove_from_dom()
1418
sb.cdp.remove_elements("#tce-sticky-wrapper")
1519
sb.cdp.remove_elements("li.sponsored-product")
1620
sb.cdp.remove_elements("#tce-dec-ces-3-banner")
1721
print('*** Kohls Search for "%s":' % search)
18-
for item in sb.cdp.find_elements("ul.products a img"):
22+
print(' (Results must contain "%s" and "%s".)' % (req_1, req_2))
23+
title_selector = "div.prod_nameBlock p"
24+
if not sb.is_element_present(title_selector):
25+
title_selector = 'a[class*="sm:text"][href*="/product/"]'
26+
for item in sb.cdp.find_elements(title_selector):
1927
if item:
2028
item.flash(color="44CC88")
21-
title = item.get_attribute("title")
22-
if title and required_text in title:
23-
print("* " + title)
24-
sb.sleep(0.1)
29+
title = item.text
30+
if title:
31+
if (
32+
req_1.lower() in title.lower()
33+
and req_2.lower() in title.lower()
34+
):
35+
print("* " + title)
36+
sb.sleep(0.1)
2537
sb.sleep(1)

examples/cdp_mode/raw_nike.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@
44
url = "https://www.nike.com/"
55
sb.activate_cdp_mode(url)
66
sb.sleep(2.5)
7-
sb.cdp.click('div[data-testid="user-tools-container"]')
7+
sb.click('[data-testid="user-tools-container"] search')
88
sb.sleep(1.5)
99
search = "Nike Air Force 1"
10-
sb.cdp.press_keys('input[type="search"]', search)
10+
sb.press_keys('input[type="search"]', search)
1111
sb.sleep(4)
12-
elements = sb.cdp.select_all('ul[data-testid*="products"] figure .details')
12+
details = 'ul[data-testid*="products"] figure .details'
13+
elements = sb.select_all(details)
1314
if elements:
1415
print('**** Found results for "%s": ****' % search)
1516
for element in elements:

examples/cdp_mode/raw_res_nike.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ async def receive_handler(event: mycdp.network.ResponseReceived):
3131
sb.cdp.add_handler(mycdp.network.RequestWillBeSent, send_handler)
3232
sb.cdp.add_handler(mycdp.network.ResponseReceived, receive_handler)
3333
sb.sleep(2.5)
34-
sb.cdp.click('div[data-testid="user-tools-container"]')
34+
sb.cdp.click('[data-testid="user-tools-container"] search')
3535
sb.sleep(1.5)
3636
search = "Nike Air Force 1"
3737
sb.cdp.press_keys('input[type="search"]', search)

0 commit comments

Comments
 (0)