【发布时间】:2019-12-02 15:54:21
【问题描述】:
我正在尝试使用 selenium webdriver 单击页面上的返回按钮。有时,可能会因为加载而第一次失败,所以我把代码放在了while try except block中,让它在失败后重试:
while True:
try:
driver.find_element_by_class_name("back_button")
driver.click()
except:
time.sleep(1)
print("Unable to go back")
continue
break
理想情况下,当 try 块中的部分成功执行时,代码应该继续前进,但我发现有时它仍然会尝试单击返回按钮,而它已经在上一页上。然后它会永远卡在 while 循环中,因为该页面上没有返回按钮。可能的原因是什么?
【问题讨论】:
-
except:无一例外(例如except TimeoutException:)在 Selenium 和一般编程中都是非常危险的做法。你想在这里捕捉什么异常?如果您在except块中指定异常,您的代码中出了什么问题可能会变得更加清楚。如果不知道异常,也不知道您正在自动化的页面的上下文,也很难解决您的问题。 -
我正在尝试在这里捕捉
ElementNotInteractableException。 -
这是有道理的,如果页面没有完全加载完成,就会抛出该错误。如果抛出错误,我将为此问题添加额外的解决方法。