gpt4 book ai didi

python - 如何检查 selenium (python 2) 中是否存在某个元素,如果不存在则不抛出 NoSuchElement 异常?

转载 作者:行者123 更新时间:2023-12-01 01:51:04 25 4
gpt4 key购买 nike

我想检查我正在测试的页面上是否存在某个元素,但我不希望 find_element_by_xpath 函数在该元素不存在时抛出 NoSuchElement 异常。这是我当前的代码:

try:
self.driver.find_element_by_xpath(an_element)

try:
self.driver.find_element_by_xpath(another_element)

except NoSuchElementException:
... (If the first find_element works and second doesn't I want this code)

except NoSuchElementException:
... (If the first find_element fails I want this code)

这本质上相当于 if else 语句,因此我更愿意使用 if else 语句,以便我可以在这些代码块中找到不同的 no such element 异常。

是否还有其他选项,如果元素不存在,则不会引发异常?

编辑:

给出的答案非常有效!感谢那些回答的人。如果您遇到同样的问题,我还想出了另一种方法:

当您使用 find_elements_by_xpath() 时,它会返回找到的元素列表。如果此列表的长度为 0,则该元素不存在。如果长度为 1,则存在元素。没有抛出异常。

最佳答案

您可以使用以下代码:

if self.driver.find_elements_by_xpath(an_element):
if self.driver.find_elements_by_xpath(another_element):
# code for case both found
else:
# second not found
else:
# first not found

请注意,find_elements_by_xpath() 返回 WebElement 列表或空列表。无需处理 NoSuchElementException

关于python - 如何检查 selenium (python 2) 中是否存在某个元素,如果不存在则不抛出 NoSuchElement 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50722396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com