Javascript 如何在量角器中选中多个复选框
我已经了解了如何通过此链接选中一个复选框: 然而,我想知道如何做,以检查我的视图上的所有复选框是否都将被选中 目前,下面的代码仅检查是否选中了一个复选框:Javascript 如何在量角器中选中多个复选框,javascript,angularjs,checkbox,protractor,Javascript,Angularjs,Checkbox,Protractor,我已经了解了如何通过此链接选中一个复选框: 然而,我想知道如何做,以检查我的视图上的所有复选框是否都将被选中 目前,下面的代码仅检查是否选中了一个复选框: .clickElementById('user-' + data.userIndex) .expect( element('input[ng-model="user.checked"]') .attr('checked') ).toBeTruthy() 这就是我想要的,但是当我进入下
.clickElementById('user-' + data.userIndex)
.expect(
element('input[ng-model="user.checked"]')
.attr('checked')
).toBeTruthy()
这就是我想要的,但是当我进入下一个测试,通过一个按钮选择所有复选框时,我想通过循环所有复选框来测试它们是否被选中。抱歉重复我的话
Ta使用
元素。all
创建指定元素的数组,然后您可以循环或直接调用它们,即
element.all(by.model('user.checked').then(function(btn) {
expect(btn[0].attr('checked')).toBe('true');
});
还是用循环
element.all(by.model('user.checked').each(function(btn) {
// iterates through each btn
expect(btn.attr('checked')).toBe('true');
});
来源:您也可以将其选中一个复选框-是否选中所有复选框:
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);
要添加到这一点,实际上可以使用量角器附带的each方法。简单的替换了当时的承诺。啊,真的!我忘记了
.each()
——比for循环好得多。我更新了我的答案。如果您使用.css的by
,那么您可以使用isSelected
。只是另一种方式。