如何使用Protractor在警报框中点击“确定”

7

我正在使用AngularJS,想要删除一个链接,在这种情况下,会出现一个弹窗来确认是否删除。

我正在尝试使用Protractor进行端到端测试,如何在弹窗中进行确认?

我尝试过:

browser.switchTo().alert().accept()

但它似乎不起作用。

Protractor中是否有处理警告框的规定?

5个回答

6

仍然出现错误信息"UnexpectedAlertOpenError: unexpected alert open"。 - Prateek Choudhury
@PrateekChoudhury 你找到解决方案了吗? - Nick
2
不要使用 ignoreSynchronization。当前版本需要 browser.waitForAngularEnabled(false) - Machtyn

6

等待警报出现

var EC = protractor.ExpectedConditions;
browser.wait(EC.alertIsPresent(), 5000, "Alert is not getting present :(")

3

建立一个promise来等待警告出现:

function getAlertAndClose(element) {
    return element.click().then(function (alertText) {
        //Wait for alert to pop up
        browser.wait(function () {
            return browser.switchTo().alert().then(
                function () {return true;},
                function () {return false;}
            );
        }, 3000); // Wait timeout

        // Test alert is what you expect
        var popupAlert = browser.switchTo().alert();
        alertText = popupAlert.getText();
        expect(alertText).toMatch('Are you sure you want to delete this?');

        // Close alert
        popupAlert.dismiss();
    })
}

var saveButton = $('.saveBtn');
getAlertAndClose(saveButton);

0

这将很好地工作:

await browser.switchTo().alert().accept();

0

这个东西运行得很好,我已经试过了


 await browser.switchTo().alert().accept();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接