-
| How complex would it be to remove the need for chromedriver?, using CDP calls | 
Beta Was this translation helpful? Give feedback.
      
      
          Answered by
          
            mdmintz
          
      
      
        Feb 18, 2025 
      
    
    Replies: 1 comment
-
| There's pure CDP Mode for that. Eg: import asyncio
from seleniumbase.core import sb_cdp
from seleniumbase.undetected import cdp_driver
def main():
    url0 = "about:blank"  # Set Locale code from here first
    url1 = "https://www.priceline.com/"  # (The "real" URL)
    loop = asyncio.new_event_loop()
    driver = cdp_driver.cdp_util.start_sync()
    page = loop.run_until_complete(driver.get(url0))
    sb = sb_cdp.CDPMethods(loop, page, driver)
    sb.set_locale("en")  # This test expects English locale
    sb.open(url1)
    sb.sleep(2.5)
    sb.internalize_links()  # Don't open links in a new tab
    sb.click("#link_header_nav_experiences")
    sb.sleep(3.5)
    sb.remove_elements("msm-cookie-banner")
    sb.sleep(1.5)
    location = "Amsterdam"
    where_to = 'div[data-automation*="experiences"] input'
    button = 'button[data-automation*="experiences-search"]'
    sb.gui_click_element(where_to)
    sb.press_keys(where_to, location)
    sb.sleep(1)
    sb.gui_click_element(button)
    sb.sleep(3)
    print(sb.get_title())
    print("************")
    for i in range(8):
        sb.scroll_down(50)
        sb.sleep(0.2)
    cards = sb.select_all('h2[data-automation*="product-list-card"]')
    for card in cards:
        print("* %s" % card.text)
if __name__ == "__main__":
    main()And here's a way using the  import asyncio
import time
from seleniumbase.undetected import cdp_driver
async def main():
    driver = await cdp_driver.cdp_util.start_async()
    page = await driver.get("about:blank")
    await page.set_locale("en")
    await page.get("https://www.priceline.com/")
    time.sleep(3)
    print(await page.evaluate("document.title"))
    element = await page.select('[data-testid*="endLocation"]')
    await element.click_async()
    time.sleep(1)
    await element.send_keys_async("Boston")
    time.sleep(2)
if __name__ == "__main__":
    loop = asyncio.new_event_loop()
    loop.run_until_complete(main()) | 
Beta Was this translation helpful? Give feedback.
                  
                    0 replies
                  
                
            
      Answer selected by
        mdmintz
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
        
    
There's pure CDP Mode for that. Eg: