内部为循环承诺

我正在努力解决这个问题:

>单击按钮以获取一组数据
>检查返回的行数是我所期望的
>我需要运行10次,每次,我期待不同的行数

下面的代码片段不起作用,因为’i’不是我所期待的.我怎样才能做到这一点?

for (var i = 0; i < subElements.length; ++i) {
    element(by.id('get-data')).click();

    // Check users returned
    element.all(by.id('users')).map(function (elm) {
        return elm;
    }).then(function (users) {
        expect(users.length).toBe(expectedRecords[i]);
        // Some more checks to be added later
    });
}

最佳答案 关于什么:

for (var i = 0; i < subElements.length; ++i) {
    element(by.id('get-data')).click();

    var count = element.all(by.id('users')).count();
    expect(count).toBe(expectedRecords[i]);
}

只要你没有访问i,那么它就是你想要的,否则我将是你循环中的最后一个值,你需要关闭.

编辑:见Using protractor with loops

点赞