gpt4 book ai didi

Python Selenium 如何处理 while 循环/if else 语句中的 NoSuchElementException

转载 作者:行者123 更新时间:2023-12-01 02:17:32 24 4
gpt4 key购买 nike

我正在尝试编写一个 while 循环,其中如果未找到元素,它会执行某些任务,但是当未找到该元素时,它会抛出错误 NoSuchElementException ,就好像没有找到该元素一样元素,而不是转到“else”语句。

elem = driver.find_element_by_id('add-to-bag')

while True:
if elem.is_displayed():
False
else:
driver.delete_all_cookies()
driver.refresh()
sleep(randint(5, 10))

最佳答案

根据您的代码块,当您提到如果找到一个元素时,它会执行某些任务,但是当未找到该元素时,它会抛出一个错误代码完美 .

说明

查找元素的代码位于 while/if block 开始之前。因此,当您的 find_element_by_id('add-to-bag') 失败 而不是返回一个元素时,它会返回您尚未处理的 NoSuchElementException .

解决方案

一个简单的解决方案是为 find_element_by_id('add-to-bag') 引入一个 try- except block 如下:

try :
elem = driver.find_element_by_id('add-to-bag')
if elem.is_displayed():
//implement your logic

except NoSuchElementException :
driver.delete_all_cookies()
driver.refresh()
sleep(randint(5, 10))

关于Python Selenium 如何处理 while 循环/if else 语句中的 NoSuchElementException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48256870/

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