Javascript 获取承诺数组的大小(量角器)
我有一个复选框列表,我想检查它们是否被选中。我想在对象数组中循环并逐个检查,但无法获得数组的大小。我尝试了以下两种方法,但我得到了不同的错误Javascript 获取承诺数组的大小(量角器),javascript,angularjs,protractor,Javascript,Angularjs,Protractor,我有一个复选框列表,我想检查它们是否被选中。我想在对象数组中循环并逐个检查,但无法获得数组的大小。我尝试了以下两种方法,但我得到了不同的错误 var i, n; networkStatusDetail.detailsList.all(by.tagName('div')).then(function(arr){ console.log(arr.length); for(i=0;i<; i++){ arr.get(i).eleme
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);
});
}
});
vari,n;
networkStatusDetail.detailsList.all(按.tagName('div'))。然后(函数(arr){
控制台日志(arr.length);
对于(i=0;i,您不需要知道有多少复选框可以在其上循环-使用或替代:
感谢@alecxe的快速响应。不幸的是,我无法使用上面的代码。我得到的错误是失败的:元素不再连接到DOM。不确定这是否与数组中的元素太多有关,或者只是它的执行方式有关,但它似乎没有在数组中循环。@polaris有趣,你说呢查看任何“已选定”抛出错误之前在控制台上打印的值?还有,它发生在代码中的哪一行?谢谢。突然之间,这似乎工作正常。但为了回答您的问题,它说它在包含返回复选框的行上失败了……这似乎是由于量角器与其错误消息不一致。我有类似的问题之前有错误,但不会在同一位置失败。
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);
});
}
element.all(by.model('displayedsites[site.siteid]')).each(function (checkbox) {
return checkbox.isSelected().then(function (isSelected) {
console.log(isSelected);
});
});