Java,Selenium& Firefox驱动程序 - driver.switchTo()。alert()在警告对话框中挂起。为什么?

时间:2015-05-05 22:48:06

标签: selenium selenium-webdriver alert

场景:selenium,java,firefox和alert 所以,我写了一些回溯代码来处理抓取网站时的提醒。

在搜索selenium和警报时很容易找到这种代码。

    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功能上创建的确认框”#34;我想知道这意味着什么,但我的声誉如此之低,我还不能评论:)。

另外,正如第一个答案所指出的那样,有问题的对话框和有效的对话框都是"认证"警报。我不想要进行身份验证。

所以,回顾一下,问题是为什么TargetLocator.alert()调用块?我的最终目标是关闭我在driver.get(url)之后可能遇到的任何对话。

有什么想法吗?

由于 克里斯蒂安

P.S。关于重复标签,我不认为它是重复的。代码建议那里也没有用。我的问题的主要目标之一是理解为什么这个弹出窗口阻止调用alert()

1 个答案:

答案 0 :(得分:0)

根据您提供的链接http://www.fcb.com/news/rss,在导航到此时,它会显示身份验证弹出窗口。它不是警报,这是你面临问题的原因..

检查一下:Handling Browser Authentication using Selenium

如果不是您要找的,请解释此问题,因为我无法发表评论以获得更多解释。

谢谢你, 穆拉利