如何處理硒中的多個警報彈出確認。例如:如果接受彈出窗口,它會一次又一次詢問同一個窗口。如果在點擊第5次確認/解散後彈出窗口關閉,我們如何處理相同的問題。如何處理硒中的多個警報彈出確認?
所以,請幫我在這...
如何處理硒中的多個警報彈出確認。例如:如果接受彈出窗口,它會一次又一次詢問同一個窗口。如果在點擊第5次確認/解散後彈出窗口關閉,我們如何處理相同的問題。如何處理硒中的多個警報彈出確認?
所以,請幫我在這...
如果你知道的時候確切數目此警報會彈出,你可以使用一個簡單的循環與重的硬編碼數。例如:
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();
}
}
你能分享多次彈出的彈出窗口嗎?它是警報或模式對話框還是彈出式對話框? – DebanjanB
這是面試問題之一,彈出窗口可能會接受第一次或任何。所以我們想嘗試直到關閉彈出窗口。你能幫我解決這個問題嗎? –