如何使用python

时间:2015-05-09 23:50:03

标签: python selenium

所以我想点击这个按钮,如果是你第一次点击它。将出现一个javascript警告弹出窗口。我一直在使用firebug而且无法找到javascript的位置并且我已经尝试了

if EC.alert_is_present:
        driver.switch_to_alert().accept()
else:
    print("no alert")

如果有警告框,则上述代码有效,但如果没有则会抛出错误。即使有其他声明我甚至尝试过

   if EC.alert_is_present:
            driver.switch_to_alert().accept()
   elif not EC.alert_is_present:
               print("no alert")

它抛出了我的错误

selenium.common.exceptions.NoAlertPresentException: Message: No alert is present

我们如何解决这个问题?

2 个答案:

答案 0 :(得分:8)

使用try catch,如果没有Alert,则捕获NoAlertPresentException例外:

from selenium.common.exceptions import NoAlertPresentException

try:
    driver.switch_to_alert().accept()
except NoAlertPresentException as e: 
    print("no alert")

答案 1 :(得分:4)

您就是这样做的:

from selenium.common.exceptions import NoAlertPresentException
try:
    context.driver.switch_to.alert.accept()
except NoAlertPresentException:
    pass

如果您愿意,可以使用pass声明替换print。请注意使用switch_to.alert而不是switch_to_alert()。后者已被弃用了一段时间。在我在这里的Selenium版本中,我在其代码中看到了这一点:

warnings.warn("use driver.switch_to.alert instead", DeprecationWarning)