如何使用量角器在警告框中单击“确定”

时间:2015-07-28 04:49:50

标签: javascript angularjs testing selenium-webdriver protractor

我正在使用AngularJS,我想删除一个链接,在这种情况下,会出现一个警告框来确认删除。

我正在尝试使用量角器进行e2e测试,如何在警告框中进行确认?

我试过了:

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

但它似乎不起作用。

量角器是否有处理警报箱的规定?

5 个答案:

答案 0 :(得分:6)

Wait for alert to become present

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

答案 1 :(得分:4)

尝试

browser.driver.get('URL');
browser.switchTo().alert().accept();

browser.ignoreSynchronization = true
browser.get('URL');
browser.switchTo().alert().accept();

或:browser.switchTo().alert() not working in protractor

答案 2 :(得分:2)

设置等待警报出现的承诺:

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

答案 3 :(得分:0)

这可以正常工作:

$("#submit_delete_dismiss_calc"+formid)
.attr("onClick", "location.href='dossier_detail_folders.php?id=<?php echo $_GET['id']; ?>'");

答案 4 :(得分:0)

我尝试过了,这件事做得很好


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