为什么通过硒切换到警报不稳定?

时间:2018-02-17 08:19:53

标签: python google-chrome selenium firefox selenium-webdriver

为什么通过硒切换到警报不稳定?

例如。
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

我写了,一切都按原样运作 但我认为这不美观 为什么一切都如此不稳定? 非常感谢你。

2 个答案:

答案 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()