Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在selenium中处理多个警报弹出确认?_Java_Selenium - Fatal编程技术网

Java 如何在selenium中处理多个警报弹出确认?

Java 如何在selenium中处理多个警报弹出确认?,java,selenium,Java,Selenium,如何在selenium中处理多个警报弹出确认。 例如:如果接受弹出窗口,它会一次又一次地请求相同的窗口。如果在单击第五次确认/取消后弹出窗口关闭,我们如何处理相同的问题 因此,请在这方面帮助我……如果您知道此警报将弹出的确切次数,您可以使用带有硬编码重试次数的简单循环。例如: int retries = 5; while (retries > 0) { alertTriggerButton.click(); Alert alert = driver.switchTo(

如何在selenium中处理多个警报弹出确认。 例如:如果接受弹出窗口,它会一次又一次地请求相同的窗口。如果在单击第五次确认/取消后弹出窗口关闭,我们如何处理相同的问题


因此,请在这方面帮助我……

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

int retries = 5;

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

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

    retries--;

}

您应该修改此代码,以确保它能根据您的页面行为工作,从而考虑到类似于思考的响应时间(换句话说,如果需要,请添加相关的等待时间)。

您可以使用while。您正在检查警报是否存在,并且每次警报存在时,您都会根据给定的布尔值来解析警报。当不再有新警报时,它将中断并继续

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();
    }
}

你能分享一个弹出窗口的快照吗?这是一个警告或模式对话框还是一个弹出气泡?这是面试问题之一,弹出框可以接受第一次或任何一次。所以我们想尝试直到关闭弹出窗口。你能帮我一下吗