Reputation: 302
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
Reputation: 63
This thing is wroking fine i have tried it
await browser.switchTo().alert().accept();
Upvotes: 0
Reputation: 21
This will work fine:
await browser.switchTo().alert().accept();
Upvotes: 0
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
Reputation: 473873
Wait for alert to become present:
var EC = protractor.ExpectedConditions;
browser.wait(EC.alertIsPresent(), 5000, "Alert is not getting present :(")
Upvotes: 6
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