在我们的一项测试中,有时,当用户尝试注销时,我们会收到浏览器警报消息。
我不希望由于这些警报而导致测试失败。出现警报时,我们收到以下错误:
An error was thrown in an afterAll
AfterAll Failed: unexpected alert open: {Alert text : You have unsaved changes! If you leave, your changes will be lost.}
我试图通过以下方法解决它 1.在conf.js文件中添加了意想不到的AlertBehaviour:'accept',但失败了,并且2.使用if / else块修改了代码,如下所示:
exports.logOutfromESY =function(){
var G = GV;
var EC = protractor.ExpectedConditions;
expect(G.User_Menu_Dropdown.isPresent()).toBeTruthy();
G.User_Menu_Dropdown.click();
browser.wait(EC.presenceOf(G.logOut_Button), 2000, 'The Logout Buttons taking too long to appear in the DOM');
G.logOut_Button.click();
browser.sleep(500);
if(alert.isPresent()){
browser.switchTo().alert().then(function (alert) {
alert.accept();
});
}
browser.wait(EC.presenceOf(G.Email_Input_box), 3000, 'The Login Page redirection taking long time');
browser.sleep(500);
};
它也不起作用。请注意,“ alert”变量是我最后一次为了使量角器识别警报而付出的努力。
有什么办法可以做到这一点?
答案 0 :(得分:1)
似乎此解决方案可能会有所帮助: https://stackoverflow.com/a/29873887/6331748
编辑:
您也可以考虑使用--disable-notifications
标志。
您需要像这样将其添加到您的配置文件中:
export const config = {
capabilities: {
chromeOptions: {
args: ['--disable-notifications']
}
}
}