Home > Mobile >  how to check whether the element exists or not in pages
how to check whether the element exists or not in pages

Time:09-14

My work is use selenium.webdriver class to click the button in pages with python. If I am trying to find a element in page by xpath,sometimes the element may not exist.So before i use the element I should check whether the element exists or not. The most popular way to solve this question is to use try...expect statement. like this

    def ElementExists(xpath):
   try:
      driver.find_element("xpath",xpath)
      return True
   except:
      return False

It works well. But i find the time cost in try...expect statement is so long. It will cost almost 15 seconds, so what can we do to reduce the time cost with another way? Thanks

CodePudding user response:

A potentially faster alternative would get rid of the try and catch construction:

def ElementExists(xpath):
    e = driver.find_element_by_xpath('xpath')
    if e:
        return True
    return False

CodePudding user response:

Instead of driver.find_element with try-except block you can simply use driver.find_elements method.
Something like this:

def ElementExists(xpath):
    driver.find_elements(By.XPATH, your_xpath)

driver.find_elements will return you a list of web elements matching the passed locator. In case such elements found it will return non-empty list interpreted by Python as a Boolean True while if no matches found it will give you an empty list interpreted by Python as a Boolean False

  • Related