如果找不到另一个元素,如何单击元素

时间:2019-05-08 19:45:31

标签: python selenium

我正在尝试执行以下指令:

我使用以下代码搜索元素

ipokay = driver.find_element_by_xpath("//input[@type='checkbox']").click()

但是我希望如果找不到此元素(返回错误“无法定位元素”),脚本应单击具有另一个类的元素,例如“ btn-new btn-wide”

该怎么做?

3 个答案:

答案 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