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
我只想检查一个元素是否存在于 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