当找不到元素时 Return 'NameError' 而不是 'Pass'

Return 'NameError' instead of 'Pass' when Can't find element

我正在使用 Python Selenium。当我尝试这个时:

try:
    element = driver.find_element_by_xpath('--path--').text.encode('ascii','ignore')
except NoSuchElementException:
    pass


print element

但是,当元素不存在时,显示错误

NameError: name 'element' is not defined

..当找不到元素时应该 pass

错误是因为您仅在 try 部分设置了元素。在 try-except or in except.

之外设置 'element'

例如:

try:
    element = driver.find_element_by_xpath('--path--').text.encode('ascii','ignore')
except NoSuchElementException:
    element = None

根据代码块中的 try {} 块,当元素不存在时 引发异常

element = driver.find_element_by_xpath('--path--').text.encode('ascii','ignore')

这里变量 element 永远不会被初始化。

异常在 catch {} 块中处理,您只需按如下方式传递它:

except NoSuchElementException:
    pass

因此,当您尝试 print() 变量 元素 时继续前进,如下所示:

print element

您看到 Python 错误为:

NameError: name 'element' is not defined