Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取承诺数组的大小(量角器)_Javascript_Angularjs_Protractor - Fatal编程技术网

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);
    });
});