Javascript 量角器&x27;对于';循环不';不为所有索引执行操作
我使用量角器测试web应用程序,但当我使用for循环导航“删除”元素(按钮)时,它不能正常工作 这里是我的stepdefinition.js:Javascript 量角器&x27;对于';循环不';不为所有索引执行操作,javascript,loops,protractor,elements,Javascript,Loops,Protractor,Elements,我使用量角器测试web应用程序,但当我使用for循环导航“删除”元素(按钮)时,它不能正常工作 这里是我的stepdefinition.js: let remove = element.all(by.css('a[class="product__cta"]')); remove.count().then(function(val){ for(let i=0; i<val; i++){ console.log('i is= ', i);
let remove = element.all(by.css('a[class="product__cta"]'));
remove.count().then(function(val){
for(let i=0; i<val; i++){
console.log('i is= ', i);
browser.driver.sleep(1000);
remove.get(i).click().perform;
browser.driver.sleep(5000);
}
})
browser.sleep(5000);
let empty_title = element(by.css('.empty-title'));
empty_title.getText().then(function(value){
console.log('empty title: ', value);
})
expect(element(by.css('.empty-container')).isPresent()).to.eventually.be.true.and.notify(next);
有5个“product_u cta”,而不是错误消息中提到的2个,单击移除按钮仅适用于五个元素中的三个,顺序如下:
第一个el:已删除
第二个el:未点击
第三个el:已删除
第四个el:未点击
第五个el:删除
为什么会有这种行为?我能做些什么来获取for循环中的所有元素并删除其元素?
请不要告诉我只有2个元素与locator By(css selector,a[class=“product\uu cta]”匹配,因为我仍在浏览页面,其中有5个元素。
PS:空容器仅在单击每个删除项目后显示
谢谢你的帮助 删除循环中的元素。删除三个元素时,只剩下两个。但您想删除索引为3的元素,因此出现了一个错误。换一行就行了
remove.get(i).click().perform;
为此:
remove.first().click().perform;
尝试添加
browser.sleep(10000)
beforeremove.count()。然后(…
。似乎您的代码在页面初始打开时发现了5个匹配的元素,但只要页面加载,匹配的元素就会减少到2个。因此报告索引超出范围。需要等待页面加载完成,然后再对匹配的元素进行计数。
remove.first().click().perform;