为什么通过硒切换到警报不稳定?
例如。
1.运行代码,一切都好。一切顺利。
但如果此代码在几分钟内运行,则可能存在错误。
例如,没有可以单击的元素。等等。
2.在一个站点上有一个警报窗口。
alert = driver.switch_to_alert()
alert.dismiss()
所以我关闭它。但他的工作时间很长。一切都很好,然后是错误。
for al in range(3):
try:
alert = driver.switch_to_alert()
alert.dismiss()
time.sleep(randint(1, 3))
except:
pass
我写了,一切都按原样运作 但我认为这不美观 为什么一切都如此不稳定? 非常感谢你。
答案 0 :(得分:2)
根据您的代码块,您需要解决以下几个问题:
Switching to an Alert:方法switch_to_alert()
已弃用,您应该使用 switch_to.alert
。 API Docs明确提到以下内容:
def switch_to_alert(self):
""" Deprecated use driver.switch_to.alert
"""
warnings.warn("use driver.switch_to.alert instead", DeprecationWarning)
return self._switch_to.alert
Wait for the Alert to be present:在调用{{1}之前,您应该始终为警告 警告 引入 }或accept()
如下:
dismiss()
答案 1 :(得分:0)
这将在警报上单击确定按钮:
driver.switch_to.alert.accept()
这将在警报上单击 CANCEL 按钮:
driver.switch_to.alert.dismiss()