Skip to content Skip to sidebar Skip to footer

Selenium Webdriver Can't Find Element Sometimes

I'm trying to find the search box on tripadvisor but sometimes it is not able to find it. (I get timeout error). I have added WebDriverWait and time.sleep but to no avail. I am sti

Solution 1:

To find the search box on Tripadvisor instead of presence_of_element_located() you have to induce WebDriverWait for the element_to_be_clickable() and you can use either of the following Locator Strategies:

  • Using CSS_SELECTOR:

    searchbox = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name='q'][title='Search']")))
    
  • Using XPATH:

    searchbox = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@name='q' and @title='Search']")))
    
  • Note: You have to add the following imports :

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

Solution 2:

To entered value in search input box

Use WebDriverWait() and wait for element_to_be_clickable() and following xpath.

searchbox = WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH, "//input[@aria-label='Search']")))

Post a Comment for "Selenium Webdriver Can't Find Element Sometimes"