在硒中找不到元素时继续

2024-05-19 01:15:32 发布

您现在位置:Python中文网/ 问答频道 /正文

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()点击网站上的up key图片,它有时会在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,然后它应该停止。在

比如:

^{pr2}$

Tags: lambdakeytext文本元素driverelementitem
1条回答
网友
1楼 · 发布于 2024-05-19 01:15:32

为此,您必须用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"

相关问题 更多 >

    热门问题