单击未定义数量的对话框

时间:2016-04-08 13:08:59

标签: javascript selenium protractor

目前我正在使用ProtractorJS访问一个页面,该页面具有未指定数量的弹出对话框,这些对话框对于网页的操作并不重要,但会阻止与其进一步交互。

例如,当我打开登录屏幕时,会出现几个(但数量未知)弹出窗口,并且一个接一个(它们不在同一时间)。我目前正在以一种草率的方式处理这个问题(我看看对象是否存在并点击现有按钮来终止它)我相信他们必须是一个更好的处理方式...基本上,我想&# 34;环路"通过这些行动直到完成,如果可能的话,以承诺的方式完成。

另外,作为一个警告,我希望能够处理随机出现的消息,而不会中断我的测试流程。我理解后者可能有点好,但我觉得我会问。

1 个答案:

答案 0 :(得分:1)

这是一种方式。

boolean popupFound=true;
while (popupFound) {
    try {
        // You should temporarily lower implicit wait to avoid slowing things down
        driver.setImplicitWait(6);
        driver.switchTo().alert().accept(); // select ok or cancel
    } catch (NoAlertPresentException ex) {
        // Not needed so exit; assumes no delay between popups
        popupFound = false;
    } finally {
        driver.setImplicitWait(60); // Or whatever you had it set at originally
    }
}

更好地确保隐式等待只是它需要的大小。