【发布时间】:2015-05-05 22:48:05
【问题描述】:
场景:selenium、java、firefox 和警报 所以,我写了一些时间回溯代码来处理抓取网站时的警报。
这种代码在搜索 selenium 和 alerts 时很容易找到..
try {
Alert alert = driver.switchTo().alert();
alert.accept();
} catch (NoAlertPresentException e) {
LOGGER.debug("No alert available: " + url);
}
这似乎适用于我拥有的几个测试用例。一个是 tomcat 主页,例如,如果您单击“状态”,则会在其上弹出一个窗口。
现在我遇到了一个阻止上述代码的对话框。 switchTo() 返回一个 TargetLocator,但该定位器上的 alert() 会阻塞并且永远不会返回。
触发该对话框的链接是http://www.fcb.com/news/rss。
另外,在this 帖子上,我发现一条评论说“我们无法处理在 onload 函数上创建的确认框”我想知道这是什么意思,但我的声誉太低了,我无法发表评论然而:)。
此外,正如第一个答案中所指出的,有问题的对话和有效的对话都是“身份验证”警报。我不想认证。
所以,回顾一下,问题是为什么 TargetLocator.alert() 调用会阻塞?我的最终目标是关闭在 driver.get(url) 之后可能遇到的任何此类对话框。
有什么想法吗?
谢谢 克里斯蒂安
附言关于重复标签,我认为它不是重复的。那里建议的代码也不起作用。我的问题的主要目标之一是了解为什么此弹出窗口会阻止调用 alert()
【问题讨论】:
-
您可以在确认窗口中使用警报......
标签: selenium selenium-webdriver alert