javascript - 是否可以一步处理多个弹出窗口?

标签 javascript selenium selenium-webdriver

This page有一个按钮 Alert Box : Click Here。如果我们单击此按钮,它会显示一个弹出窗口,当我们单击 OK 按钮时,它会显示另一个弹出窗口。

我的代码是:

driver.findElement(By.xpath("//*[@id='contact-form-2599']/form/button")).click();
driver.switchTo().alert().accept();
driver.switchTo().alert().accept();

我两次使用相同的代码来单击弹出窗口。

是否可以一步处理多个弹出窗口?

最佳答案

您可以遍历 驱动程序 可以关注的所有可能的命名警报:

function closeAlerts() {
    // this aussmes that there is at least one alert
    try {
        let currentAlert = driver.switchTo().alert();
    }
    catch (err) {
        console.log(err);
        return;
    }

    // loop through the alerts and accept them
    while (currentAlert && currentAlert.accept instanceof Function) {
        currentAlert.accept();
        try {
            currentAlert = driver.switchTo().alert();
        }
        catch (err) {
            console.log(err);
            return;
        }
    }
}
closeAlerts();

希望对您有所帮助。

关于javascript - 是否可以一步处理多个弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46905845/

相关文章:

javascript - 使用 MongoDB 和 Nodejs 传递两个查询

javascript - 如何在一段时间后执行一个函数

selenium - Nightwatch - Node.js - 如何移除/删除 HTML 元素?

python - Selenium-调试 : Element is not clickable at point (X, Y)

php - 阿罗哈编辑器 : Inserting images/pictures

javascript - 警报对话框不会使用超时阻止 Firefox 上的 UI

java - 如何使用java按下selenium中的删除按钮?

java - Selenium 日历: Months and Dates Selections: What i'm doing wrong

java - 扩展Webdriver或Selenium2的click()方法计算网页响应

java - driver.switchTo().alert() 不适用于谷歌浏览器和火狐浏览器