在我的“ conf.js”中,测试套件的安排如下(使用saucelab的webdriver):

suites: {
    abc: './abc/spec.js',
    xyz: './xyz/spec.js',
    pqr: './pqr/spec.js'
},


上述安排的问题是,如果警报框/窗口之一意外出现在测试套件之一中,则在该特定套件遭受故障并开始失败之后,测试套件便会出现。

当测试套件完成或只能手动处理时,量角器中是否有内置方法可以关闭所有窗口/警报框等?

最佳答案

据我了解,protractor中没有地方可以提供“测试套件之前”或“测试套件之后”的逻辑(如果我错了,请纠正我)。

想法是使用afterEach(),尝试切换到alert,如果存在,则切换为dismiss()(或accept(),取决于您的需求),如果不存在,则不执行任何操作:

describe("My test", function () {
    afterEach(function () {
        browser.switchTo().alert().then(
            function (alert) {
                alert.dismiss();
            },
            function (err) {}
        );
    });

    it("Test smth", function () {
        // ...
    });
});


也可以看看:


Protractor Dismiss Alerts If Open

10-08 20:17