【发布时间】:2019-08-28 21:41:12
【问题描述】:
This question 处理在 Java 中设置 Selenium webdriver 的 UnexpectedAlertBehaviour。你如何在 Python 的 ChromeDriver 中做同样的事情?
我尝试了以下方法;
options = ChromeOptions()
options.headless = True
options.set_capability("UNEXPECTED_ALERT_BEHAVIOUR", "ACCEPT")
options.set_capability("unexpectedAlertBehaviour", "accept")
options.set_capability("CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR", "ACCEPT")
options.set_capability("UnexpectedAlertBehaviour", "ACCEPT")
webdriver.DesiredCapabilities.CHROME["unexpectedAlertBehaviour"] = "accept"
cls.driver = webdriver.Chrome(chrome_options=options)
但是,我仍然随机遇到这个意外的alertpresent 异常:
selenium.common.exceptions.UnexpectedAlertPresentException:警报文本: 消息:意外警报打开:{警报文本:}
当我以非无头模式(头模式?)运行浏览器时,我看不到此类警报,但测试仍然随机失败并出现此异常,尽管我努力设置这个难以捉摸的选项。
【问题讨论】:
-
您是否尝试过在此处对您的链接问题的 python 编码答案中所述捕获错误:stackoverflow.com/a/30731973/7592395
-
我宁愿总是接受意外警报而不是处理异常,因为我希望测试继续进行,即使有意外警报。如果我知道它存在,我可以切换到警报,但在这种情况下,出现的警报是随机的(有时它会弹出,有时它不会弹出)。我的下一步是始终尝试接受警报并在警报不存在时处理异常,但这似乎有点难看。
标签: python selenium exception selenium-chromedriver