Java 如何在selenium中处理多个警报弹出确认?
如何在selenium中处理多个警报弹出确认。 例如:如果接受弹出窗口,它会一次又一次地请求相同的窗口。如果在单击第五次确认/取消后弹出窗口关闭,我们如何处理相同的问题Java 如何在selenium中处理多个警报弹出确认?,java,selenium,Java,Selenium,如何在selenium中处理多个警报弹出确认。 例如:如果接受弹出窗口,它会一次又一次地请求相同的窗口。如果在单击第五次确认/取消后弹出窗口关闭,我们如何处理相同的问题 因此,请在这方面帮助我……如果您知道此警报将弹出的确切次数,您可以使用带有硬编码重试次数的简单循环。例如: int retries = 5; while (retries > 0) { alertTriggerButton.click(); Alert alert = driver.switchTo(
因此,请在这方面帮助我……如果您知道此警报将弹出的确切次数,您可以使用带有硬编码重试次数的简单循环。例如:
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();
}
}
你能分享一个弹出窗口的快照吗?这是一个警告或模式对话框还是一个弹出气泡?这是面试问题之一,弹出框可以接受第一次或任何一次。所以我们想尝试直到关闭弹出窗口。你能帮我一下吗