This page具有按钮警报框:单击此处。如果单击此按钮,它将显示一个弹出窗口,而单击“确定”按钮,则将显示另一个弹出窗口。

我的代码是:

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


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

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

最佳答案

您可以循环显示driver可以关注的所有可能的命名警报:

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


我希望这有帮助。

10-02 00:11
查看更多