场景:
- 执行点击时 -> 显示 Alert1
- 接受警报 1 时 -> 显示警报 2
我能够接受alert1,但是当我编写代码来处理alert2时,也不接受任何警报。 尝试了与 Google 不同的方法,但没有任何效果
与 thread.sleep 和 wait 等的不同组合,但没有任何效果。
代码1:
Alert alert = driver.switchTo().alert();
Thread.sleep(5000);
alert.accept(); // For Alert1
Thread.sleep(5000);
alert.accept(); // For alert2
代码2:
Alert alert = driver.switchTo().alert();
Thread.sleep(5000);
alert.accept(); // For Alert1
driver.switchTo().defaultContent();
Switchtoframe(0);
Alert alert1 = driver.switchTo().alert();
Thread.sleep(5000); //test
alert1.accept(); // For alert2
最佳答案
根据评论中的代码(由于java注释很难阅读正在发生的事情),您可以尝试这样的事情:
wait = new WebDriverWait(driver, 10);
try {
wait.until(ExpectedConditions.alertIsPresent());
Alert alert1 = driver.switchTo().alert();
Thread.sleep(5000);
alert1.accept();
} catch (Exception e) {
// No alert exists
}
try {
wait.until(ExpectedConditions.alertIsPresent());
Alert alert2 = driver.switchTo().alert();
Thread.sleep(5000);
alert2.accept();
} catch (Exception e) {
// No alert exists
}
我不认为你真的需要等待,但它已经在演示中了。
关于java - 如何处理 selenium webdriver 自动化的连续警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48082926/