Prateek Choudhury
Prateek Choudhury

Reputation: 302

How to click OK in alert box using protractor

I am using AngularJS and I want to delete a link, in such cases, an alert box appears to confirm the delete.

I am trying to do e2e test using protractor, how do I confirm in an alert box?

I tried:

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

but it doesn't seem to work.

Is there a provision in protractor for handling alert boxes?

Upvotes: 7

Views: 18388

Answers (5)

bhargava krishna
bhargava krishna

Reputation: 63

This thing is wroking fine i have tried it


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

Upvotes: 0

bhargava krishna
bhargava krishna

Reputation: 21

This will work fine:

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

Upvotes: 0

user2020347
user2020347

Reputation: 883

Set up a promise to wait for the alert to be present:

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

Upvotes: 3

alecxe
alecxe

Reputation: 473873

Wait for alert to become present:

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

Upvotes: 6

user4890101
user4890101

Reputation:

try

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

or

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

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

Upvotes: 6

Related Questions