selenium 如果find_element没有找到任何东西,如何继续而不是产生一个终止程序的错误?

l3zydbqr  于 2023-02-23  发布在  其他
关注(0)|答案(5)|浏览(380)

下面的代码:

driver.find_element(By.XPATH, "/html/body/...").text

但是,我正在寻找的元素是可选的。它有时会出现,有时不出现。我希望跟踪它是否存在。如果它不存在,代码不应该终止,因为driver. find_element抛出NoSuchElementException错误。我希望继续编码。

hmtdttj4

hmtdttj41#

如果元素不存在,可以使用try..except块忽略

try:
   driver.find_element(By.XPATH, "/html/body/...").text
except:
   pass
ipakzgxi

ipakzgxi2#

使用“try:except NoSuchElementException:”语句

sz81bmfz

sz81bmfz3#

尝试

from selenium.common.exceptions import NoSuchElementException

try:
    driver.find_element(By.XPATH, "/html/body/...").text
except NoSuchElementException:
    #print('no element')
    pass
z4iuyo4d

z4iuyo4d4#

不要捕捉原始异常。
相反,处理所需的NoSuchElementException以防止片状异常的泄漏,如下所示:

try:
   driver.find_element(By.XPATH, "/html/body/...").text
except NoSuchElementException:
   pass
tf7tbtn2

tf7tbtn25#

尝试以下操作,仅当具有此xpath的元素存在时,获取文本,否则继续:

if len(driver.find_elements(By.XPATH, "/html/body/...")) > 0:
    driver.find_element(By.XPATH, "/html/body/...").text
...

相关问题