错误
出错函数如下:
#判断当前页面是否出现弹窗
def alert_is_present(driver):
try:
alert_box = driver.switch_to.alert
return alert_box
except:
return False
该函数在debug模式下可以正确执行并返回相应结果,但是在run模式下则只会返回False
原因分析
由于浏览器的渲染需要耗费一定的时间,而在程序执行时几乎是瞬间完成,那么alert_box = driver.switch_to.alert
便会直接抛出错误,然后执行except
语句,从而也就导致了后续的错误。而在debug模式下,由于单步调试存在一定的时间间隔,因此不会出现错误。
改进
from time import sleep
def alert_is_present(driver):
try:
sleep(5)
alert_box = driver.switch_to.alert
return alert_box
except:
return False
用sleep()函数加入一个时间间隔即可