我正在努力解决这个问题:
下面的代码段不起作用,因为'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
});
}
答案 0 :(得分:2)
怎么样:
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
中的then
,它就会是您想要的,否则i
将是您循环中的最后一个值,而您需要闭合。
答案 1 :(得分:0)
使用蓝鸟
var Promise = require('bluebird');
it('my test', function(done){
var promises = subElements.map(function(subElm, i){
return element(by.id('get-data')).click()
.then(function(){
// Check users returned
return element.all(by.id('users')).map(function (elm) {
return elm;
})
})
.then(function(users) {
expect(users.length).toBe(expectedRecords[i]);
});
});
Promise.all(promises).nodeify(done);
})