|
1 | 1 | from seleniumbase import sb_cdp |
2 | 2 |
|
3 | 3 | 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) |
5 | 5 | 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" |
8 | 9 | sb.press_keys('input[name="search"]', search + "\n") |
9 | 10 | 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): |
11 | 15 | if "Sponsored" in item.text: |
12 | 16 | item.remove_from_dom() |
13 | 17 | sb.remove_elements("#tce-sticky-wrapper") |
14 | 18 | sb.remove_elements("li.sponsored-product") |
15 | 19 | sb.remove_elements("#tce-dec-ces-3-banner") |
16 | 20 | 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): |
18 | 26 | if item: |
19 | 27 | 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) |
24 | 36 | sb.sleep(1) |
25 | 37 | sb.driver.stop() |
0 commit comments