我知道这是一个太迟的答案,您已经在几年前解决了这个问题,但是我仍然想发表我的分析和发现,以供将来的读者参考。
我正在Django网站开发项目中工作,目前存在一个错误,一旦打开特定网页,就会弹出错误消息框。我的环境是:
的Django 1.8
Python 2.7
硒2.46.0
我在这里阅读有关“ UnexpectedAlertPresentException” 的文档,它说:
出现意外警报时抛出。
通常在预期的模式阻止webdriver形式执行更多命令时引发。
我在项目中进行了测试,结果是:
警报框打开时,find_element_by_X方法可以成功。
click()或send_keys()将失败,并显示“ UnexpectedAlertPresentException”。
因此,我认为该try...catch块不起作用,因为“ UnexpectedAlertPresentException”被抛出到
browser.find_the_element_by_id("add_button").click()
这也意味着在此行打开网页后,警报框可能会出现:
browser.get("url")
换句话说,可能存在一个更深层隐藏的问题,一旦打开页面,该问题就会导致警报框打开。您可能需要首先解决该问题。
另一件事是:假设警告框显示在此行之后:
browser.find_the_element_by_id("add_button").click()
然后,alert = browser.switch_to_alert()应当工作正常,没有引发异常,这与您在此处描述的内容相矛盾。这也使我认为问题早已browser.get("url")成行。
我不确定所选择的解决方案如何帮助您解决问题,因为我的分析表明问题出在不同的地方。无论如何,我不是要重新选择接受的解决方案。我只想与未来的读者分享我的想法。如果我忽略或误解了此问题中的某些内容,导致我的分析错误(并且浪费您的时间阅读此:-),我们深表歉意。