我正在使用AngularJS,想要删除一个链接,在这种情况下,会出现一个弹窗来确认是否删除。
我正在尝试使用Protractor进行端到端测试,如何在弹窗中进行确认?
我尝试过:
browser.switchTo().alert().accept()
但它似乎不起作用。
Protractor中是否有处理警告框的规定?
我正在使用AngularJS,想要删除一个链接,在这种情况下,会出现一个弹窗来确认是否删除。
我正在尝试使用Protractor进行端到端测试,如何在弹窗中进行确认?
我尝试过:
browser.switchTo().alert().accept()
但它似乎不起作用。
Protractor中是否有处理警告框的规定?
尝试
browser.driver.get('URL');
browser.switchTo().alert().accept();
browser.ignoreSynchronization = true
browser.get('URL');
browser.switchTo().alert().accept();
var EC = protractor.ExpectedConditions;
browser.wait(EC.alertIsPresent(), 5000, "Alert is not getting present :(")
建立一个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);
这将很好地工作:
await browser.switchTo().alert().accept();
这个东西运行得很好,我已经试过了
await browser.switchTo().alert().accept();
browser.waitForAngularEnabled(false)
。 - Machtyn