我想要的是说如果显示了element1,请点击,如果没有检查是否显示了element2,请点击等等。但是我的代码在元素不存在时停止。如果element1在那里,它会点击它,如果不存在,代码会停止,但我希望它继续通过每个elif,直到它找到一个,任何帮助都表示赞赏。
{{1}}
错误是
selenium,common.exceptions.NoSuchElementException:消息:无法找到元素:{"方法":" xpath","选择器":" // IMG [@title =' IMG1']"}
答案 0 :(得分:0)
错误意味着根本找不到元素。换句话说,它不会显示,不存在。
我会创建一个元素/定位器列表(假设您想要缩放它),循环遍历列表并处理NoSuchElementException
错误。单击元素后退出循环:
from selenium.webdriver.common.by import By
locators = [
(By.XPATH, "//img[@title='img1']"),
(By.XPATH, "//img[@title='img2']")
]
for by, value in locators:
try:
driver.find_element(by, value).click()
break # exit once we click an element
except NoSuchElementException:
pass # element is not present - okay, move on