我可以使用以下内容获取计数值:
element.all(by.options('type as type for type in types')).then(function(elems){
return elems.length;
})
.then(function(count){
cnt = count;
});
然后在代码中我想在for循环中使用cnt
,我也使用闭包:
for(var x = 1;x < cnt; x++){
search_options(x);
}
function test(y){
console.log('input'+y);
}
function search_options(input){
it('tess', function(){
test(input);
});
}
问题是for不会执行。
任何提示或建议,指导表示赞赏或指出任何错误。 我读过关于IIFE但我发现大多数样本都使用数组,我相信'cnt'已经解决了
不幸的是,我必须使用for循环。 “每个”都不合适。
答案 0 :(得分:1)
问题是只有当控制流机制解析了promise时才会设置cnt
。 for循环将在之前执行。
相反,将cnt
定义为承诺并在测试中解决它:
cnt = element.all(by.options('type as type for type in types')).count();
cnt.then(function (actualCount) {
for(var x = 1; x < actualCount; x++){
search_options(x);
}
});
另见:Using protractor with loops。
另外,我不确定以这种方式动态创建it
实际上是否有效,这里有一些相关的主题: