在硒中找不到元素时继续

时间:2016-05-27 12:30:58

标签: python selenium

up_key.click()
item = WebDriverWait(driver, 5).until(lambda driver: driver.find_element_by_xpath(element_xpath))
if item.text == 'awesome text':
    driver.quit()

up_key.click()点击网站上的关键图像,它有时会在网页中显示AJAX中的新元素。我试图得到的新元素:
item = WebDriverWait(driver, 5).until(lambda driver: driver.find_element_by_xpath(element_xpath))

但就像我说它有时创造了一个新元素但并不总是,并且该元素的文本也不总是awesome text

因此,如果up_key.click()再次单击,则AJAX将更改元素的文本,或保留相同的文本,或删除元素。 up_key.click()点击时,这是每次随机。

我希望脚本继续执行up_key.click(),直到它找到awesome text然后它应该停止。

类似的东西:

item = WebDriverWait(driver, 5).until(lambda driver: driver.find_elements_by_xpath(element_xpath))
while item.text != 'awesome text':
    up_key.click()
    item = WebDriverWait(driver, 5).until(lambda driver: driver.find_elements_by_xpath(element_xpath))

1 个答案:

答案 0 :(得分:1)

要执行此操作,您必须使用try块

包围文本
while True:
    try:
        up_key.click()
        item = WebDriverWait(driver, 5).until(lambda driver: driver.find_element_by_xpath(element_xpath))
        if item.text != 'awesome text':
            continue
        driver.close()
    except:
        print "Not found"