|
| 1 | +"""Using CDP.network.RequestWillBeSent and CDP.network.ResponseReceived.""" |
| 2 | +import colorama |
| 3 | +import mycdp |
| 4 | +import sys |
| 5 | +from seleniumbase import SB |
| 6 | + |
| 7 | +c1 = colorama.Fore.BLUE + colorama.Back.LIGHTYELLOW_EX |
| 8 | +c2 = colorama.Fore.BLUE + colorama.Back.LIGHTGREEN_EX |
| 9 | +cr = colorama.Style.RESET_ALL |
| 10 | +if "linux" in sys.platform: |
| 11 | + c1 = c2 = cr = "" |
| 12 | + |
| 13 | + |
| 14 | +async def send_handler(event: mycdp.network.RequestWillBeSent): |
| 15 | + r = event.request |
| 16 | + s = f"{r.method} {r.url}" |
| 17 | + for k, v in r.headers.items(): |
| 18 | + s += f"\n\t{k} : {v}" |
| 19 | + print(c1 + "*** ==> RequestWillBeSent <== ***" + cr) |
| 20 | + print(s) |
| 21 | + |
| 22 | + |
| 23 | +async def receive_handler(event: mycdp.network.ResponseReceived): |
| 24 | + print(c2 + "*** ==> ResponseReceived <== ***" + cr) |
| 25 | + print(event.response) |
| 26 | + |
| 27 | + |
| 28 | +with SB(uc=True, test=True, locale_code="en", ad_block=True) as sb: |
| 29 | + url = "https://www.nike.com/" |
| 30 | + sb.activate_cdp_mode(url) |
| 31 | + sb.cdp.add_handler(mycdp.network.RequestWillBeSent, send_handler) |
| 32 | + sb.cdp.add_handler(mycdp.network.ResponseReceived, receive_handler) |
| 33 | + sb.sleep(2.5) |
| 34 | + sb.cdp.gui_click_element('div[data-testid="user-tools-container"]') |
| 35 | + sb.sleep(1.5) |
| 36 | + search = "Nike Air Force 1" |
| 37 | + sb.cdp.press_keys('input[type="search"]', search) |
| 38 | + sb.sleep(4) |
| 39 | + elements = sb.cdp.select_all('ul[data-testid*="products"] figure .details') |
| 40 | + if elements: |
| 41 | + print('**** Found results for "%s": ****' % search) |
| 42 | + for element in elements: |
| 43 | + print("* " + element.text) |
| 44 | + sb.sleep(2) |
0 commit comments