我在 selenium python 中有这个错误
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[24]/div[1]/div/div/div[3]/div[1]/div/button[1]"}
我想要带有这个 xpath 的元素:
driver.find_element_by_xpath("/html/body/div[24]/div[1]/div/div/div[3]/div[1]/div/button[1]").click()
如果不存在,则单击具有其他 xpath 的其他元素,例如:
driver.find_element_by_xpath("/html/body/div[24]/div[1]/div/div/div[3]/div[1]/div/button[2]").click()
如果元素 1 不存在点击,则一切都清楚,点击元素 2
我如何在 selenium python 中做到这一点
谢谢
答案 0 :(得分:0)
NoSuchElementException
通常由以下原因之一引起
您可以查看一下,进行调试,然后在此基础上编写您的代码。 :)
答案 1 :(得分:0)
这不是确切的解决方案,但这就是想法
if elem1.is_displayed():
elem1.click()
else:
elem2.click()
答案 2 :(得分:0)
我建议您使用 time.sleep(10)
和 nested try block
来捕获您的错误,同时它完成您想要做的事情。例如:
time.sleep(10)
try:
driver.find_element_by_xpath("/html/body/div[24]/div[1]/div/div/div[3]/div[1]/div/button[1]").click()
except:
print("button1 could not be found... Now trying to retreive button2")
try:
driver.find_element_by_xpath("/html/body/div[24]/div[1]/div/div/div[3]/div[1]/div/button[2]").click()
except:
print("button1 nor button2 were not found...")
请注意,time.sleep(10)
会延迟您的代码在此行之后执行任何内容 10 秒,这可以让页面正确加载,以便更轻松地定位元素。