我有一个复选框列表,我想检查它们是否被选中。我想循环遍历对象数组并逐个检查,但我无法获得数组的大小。我尝试了以下两种方法,但我得到了不同的错误。
var i, n;
networkStatusDetail.detailsList.all(by.tagName('div')).then(function(arr){
console.log(arr.length);
for(i=0;i<; i++){
arr.get(i).element(by.model('displayedsites[site.siteid]')).isSelected().then(function(checked){
expect(checked).toBe(true);
});
}
});
使用上面的代码我得到一个错误,说arr.get()不是一个有效的函数。
以下代码不起作用,因为我无法获得数组的大小。将数组的大小分配给另一个变量只能在promise函数中使用,但是一旦在外部使用该变量,该值就会消失。
networkStatusDetail.detailsList.all(by.tagName('div')).then(function(size){
n = size;
console.log('n = '+n);
});
console.log('n outside '+ n);
for(i=0;i<n; i++){
check.get(i).element(by.model('displayedsites[site.siteid]')).isSelected().then(function(checked){
expect(checked).toBe(true);
// console.log(i);
});
}
2个控制台将分别打印512和undefined,表明promise函数外部的n值不起作用。
如果我手动设置for循环的最大值,我只能使它工作,但是这个值会随着时间的推移而改变,所以它不正确。
如果有人能帮我说明如何做到这一点,我将不胜感激。