我已经看过如何通过此链接选中一个复选框: How to validate when a checkbox is checked in AngularJS e2e tests?
但是,我想知道如何执行此操作来检查我的视图上的所有复选框是否都要进行检查。
目前,以下代码仅检查是否已选中一个复选框:
.clickElementById('user-' + data.userIndex)
.expect(
element('input[ng-model="user.checked"]')
.attr('checked')
).toBeTruthy()
这是我想要的,但是当我进入下一个通过按钮选择所有复选框的测试时,我想循环遍历所有复选框以测试它们是否已被选中。道歉要重复自己。
TA
答案 0 :(得分:1)
使用var txt4 = document.createElement("IMG");
txt4.src = "passed.png";
创建指定元素的数组,然后你可以直接循环或调用它们,即
element.all
或使用循环
element.all(by.model('user.checked').then(function(btn) {
expect(btn[0].attr('checked')).toBe('true');
});
来源:https://angular.github.io/protractor/#/api?view=ElementArrayFinder
答案 1 :(得分:1)
您也可以 reduce 进行单项检查 - 是否选中了所有复选框:
var allChecked = element.all(by.model('user.checked')).reduce(function(acc, btn) {
return btn.getAttribute('checked')).then(function(checked) {
return acc && (checked == 'true');
});
}, true);
expect(allChecked).toBe(true);