0

我正在做自动化并使我的代码动态化,这样无论是否找到元素,应用程序都应该顺利且完美地运行。现在,问题是偶尔会出现一条警报消息。让我们说它的A。它出现了一些时间,一些时间没有。现在我正在使用

A= driver.find_element_by_xpath("abc")
    if A.isdisplay():
            (whatevery my function is)
    else:
         (Do this)

但有时 A 不会出现,这样脚本会抛出异常并且测试失败。有人可以帮我吗?

4

1 回答 1

2

一种方法是find_elements_by_xpath改用(注意s),它返回一个找到的元素数组,如果不存在则返回一个空列表。所以你可以像这样使用它:

elements = driver.find_elements_by_xpath("abc")

if elements and elements[0].is_displayed():
    # (whatevery your function is)
else:
    # (Do this)


另一种方法是使用try/catch语句,例如:

from selenium.common.exceptions import NoSuchElementException

try:
    A = driver.find_element_by_xpath("abc")
except NoSuchElementException:
    A = None

if A is not None and A.is_displayed():
    # (whatevery your function is)
else:
    # (Do this)
于 2018-01-06T18:51:22.167 回答