繁体   English   中英

如何处理硒中的多个警报弹出确认?

[英]How to handle multiple alert popup confirmation in selenium?

如何处理硒中的多个警报弹出确认。 例如:如果接受弹出窗口,它将一次又一次地询问相同的窗口。 如果单击第5次确认/关闭后该弹出窗口关闭,我们该如何处理。

所以请帮我...

如果您知道此警报将弹出的确切次数,则可以使用带有硬编码重试次数的简单循环。 例如:

int retries = 5;

while (retries > 0) {
    alertTriggerButton.click();

     Alert alert = driver.switchTo().alert();
     alert.accept();

    retries--;

}

您应该修改此代码,以确保它能够根据您的页面行为运行,因此您认为应该考虑响应时间(换句话说,如果需要,请添加相关的等待时间)。

您可以使用一会儿。 您正在检查警报是否存在,并且每次警报存在时,都将根据您提供的布尔值对其进行解析。 当不再有新警报时,它将中断并继续。

public static void resolveAllAlerts(WebDriver driver, int timeout, boolean accept) {
    while (isAlertPresent(driver, timeout)) {
        resolveAlert(driver, accept);
    }
}


private static boolean isAlertPresent(WebDriver driver, int timeout) {
    try {
        Alert a = new WebDriverWait(driver, timeout).until(ExpectedConditions.alertIsPresent());
        if (a != null) {
            return true;
        } else {
            throw new TimeoutException();
        }
    } catch (TimeoutException e) {
        // log the exception;
        return false;
    }
}

private static void resolveAlert(WebDriver driver, boolean accept) {
    if (accept) {
        driver.switchTo().alert().accept();
    } else {
        driver.switchTo().alert().dismiss();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM