Selenium 检查元素是否无一例外地存在

Selenium check if element exists without exception

我只想检查一个元素是否存在于 for 循环中,但它只是抛出一个异常并结束代码。我该怎么做?

您应该在此处使用 driver.find_elements 方法而不是 driver.find_element
像这样:

if driver.find_elements_by_xpath("/div[@class='class_name']"):
    driver.find_element_by_xpath("/div[@class='class_name']").click()

或者这样:

elements = driver.find_elements_by_xpath("/div[@class='class_name']")
if elements:
    elements[0].click()

driver.find_elements 将 return 为您提供一个 list 与传递的定位器匹配的网络元素。如果找到这样的元素,它将 return non-empty 列表解释为 Python 作为布尔值 True 而如果没有找到匹配项,它将给你一个由 [=27 解释的空列表=] 作为布尔值 False