我正在尝试执行以下指令:
我使用以下代码搜索元素
ipokay = driver.find_element_by_xpath("//input[@type='checkbox']").click()
但是我希望如果找不到此元素(返回错误“无法定位元素”),脚本应单击具有另一个类的元素,例如“ btn-new btn-wide”
该怎么做?
答案 0 :(得分:1)
将代码包装在try / except块中。
try:
ipokay = driver.find_element_by_xpath("//input[@type='checkbox']").click()
except NoSuchElementException:
ipokay = driver.find_element_by_some_other_way("something").click()
答案 1 :(得分:0)
您可以像John Gordon所说的那样将代码放在try / except块中。
或者,您可以使用find_elements_
代替find_element_
并检查列表大小。这样,您可以避免处理异常,并且比等待异常要快。
ipokays = driver.find_elements_by_xpath("//input[@type='checkbox']")
if len(ipokays) > 0 :
ipokays.index(0).click()
else :
driver.find_element_by_xpath("//*[@class='btn-new btn-wide']").click()
答案 2 :(得分:0)
使用以下代码单击具有多个元素位置选项的元素。您可以发送任意数量的不同元素定位符。它将一一尝试。
例如:click(By.xpath(“ path”),By.id(“ id”),By.name(“ name));
IWorkItemDispatcher