量角器:如何检测是否打开了意外警报

时间:2019-02-25 18:47:33

标签: javascript protractor

在我们的一项测试中,有时,当用户尝试注销时,我们会收到浏览器警报消息。

enter image description here

我不希望由于这些警报而导致测试失败。出现警报时,我们收到以下错误:

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”变量是我最后一次为了使量角器识别警报而付出的努力。

有什么办法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

似乎此解决方案可能会有所帮助: https://stackoverflow.com/a/29873887/6331748

编辑: 您也可以考虑使用--disable-notifications标志。

您需要像这样将其添加到您的配置文件中:

export const config = {
    capabilities: {
        chromeOptions: {
            args: ['--disable-notifications']
        }
    }
}