Java, Selenium & Firefox DriveR语言 driver.switchTo().alert() 挂在警报对话框上。为什么?



方案:硒,爪哇,firefox和警报因此,我编写了一些时间返回代码来处理警报,同时爬行网站。

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

    try {
        Alert alert = driver.switchTo().alert();
        alert.accept();
    } catch (NoAlertPresentException e) {
        LOGGER.debug("No alert available: " + url);
    }

这似乎适用于我的几个测试用例。一个是tomcat主页,例如,如果您单击"状态",则会在其中获得弹出窗口。

现在,我撞到了一个对话框,该对话框阻止了上述代码。switchto()返回目标纵隔,但该定位器块上的alert()永远不会返回。

触发对话框的链接是http://www.fcb.com/news/rss。

另外,在这篇文章中,我发现一条评论说:"我们无法在Onload功能上创建的确认框来处理",我想知道这意味着什么,但是我的声誉是如此之低,我还不能发表评论:)。

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

因此,回顾一下,问为什么targetLocator.alert()呼叫块?我的最终目标是关闭我在驱动程序之后可能遇到的任何此类对话框。get(url)。

有什么想法吗?

谢谢克里斯蒂安

P.S。关于重复标签,我认为这不是重复的。建议在那里也不起作用的代码。我问题的主要目标之一是了解为什么在呼叫呼叫()

的弹出窗口块上

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

检查以下内容:使用硒处理浏览器身份验证

如果不是您想要的,请解释这个问题,因为我无法发表评论以获取更多解释。

谢谢,穆拉利

最新更新