如何使用给定的 HTML 元素识别复选框值? angularjs-e2e
How do I identify checkbox value with given HTML element? angularjs-e2e
我需要一些关于以下问题的建议。当checkbox = checked时,会有属性值checked=checked,对于unchecks,属性不会存在,我无法唯一识别。在页面上,将有选中和未选中的复选框。 Dev 拒绝为我添加额外的属性,并说必须有一种方法来识别(存在或不存在)。
所以在我的测试页上,我有 10 个复选框,其中 3 个已选中,7 个未选中。
HTML 用于取消选中复选框
<input type="checkbox" disabled="disabled" ng-checked="item.unread">
HTML 选中复选框
<input type="checkbox" disabled="disabled" ng-checked="item.unread" checked="checked">
我的计数尝试 - 它会返回准确的数字,但最终会失败,因为数字可能会发生变化。
expect(element.all(by.css('input[checked="checked"]')).count()).toBe(2);
使用属性 - checked="checked"
识别选中项目没有问题
expect(element.all(by.css('input[checked="checked"]')).isSelected()).toBeTruthy();
但是当我检查未检查的项目时失败。
expect(element.all(by.css('input[type="checkbox"]')).isSelected()).toBeFalsy();
未选中项目的失败结果 - 7 个未选中和 3 个选中
[ false false false false true true false false true false]
谢谢
对于未检查的输入,您可以检查没有设置checked
属性:
expect(element.all(by.xpath('//input[@type="checkbox" and not(@checked)]')).isSelected()).toEqual([false, false, false, false, false, false, false, false, false, false]);
如果它总是 3 个选中,7 个未选中,您也可以断言计数:
expect(element.all(by.xpath('//input[@type="checkbox" and not(@checked)]')).count()).toEqual(7);
expect(element.all(by.xpath('//input[@type="checkbox" and @checked="checked"]')).count()).toEqual(3);
我需要一些关于以下问题的建议。当checkbox = checked时,会有属性值checked=checked,对于unchecks,属性不会存在,我无法唯一识别。在页面上,将有选中和未选中的复选框。 Dev 拒绝为我添加额外的属性,并说必须有一种方法来识别(存在或不存在)。
所以在我的测试页上,我有 10 个复选框,其中 3 个已选中,7 个未选中。
HTML 用于取消选中复选框
<input type="checkbox" disabled="disabled" ng-checked="item.unread">
HTML 选中复选框
<input type="checkbox" disabled="disabled" ng-checked="item.unread" checked="checked">
我的计数尝试 - 它会返回准确的数字,但最终会失败,因为数字可能会发生变化。
expect(element.all(by.css('input[checked="checked"]')).count()).toBe(2);
使用属性 - checked="checked"
识别选中项目没有问题expect(element.all(by.css('input[checked="checked"]')).isSelected()).toBeTruthy();
但是当我检查未检查的项目时失败。
expect(element.all(by.css('input[type="checkbox"]')).isSelected()).toBeFalsy();
未选中项目的失败结果 - 7 个未选中和 3 个选中
[ false false false false true true false false true false]
谢谢
对于未检查的输入,您可以检查没有设置checked
属性:
expect(element.all(by.xpath('//input[@type="checkbox" and not(@checked)]')).isSelected()).toEqual([false, false, false, false, false, false, false, false, false, false]);
如果它总是 3 个选中,7 个未选中,您也可以断言计数:
expect(element.all(by.xpath('//input[@type="checkbox" and not(@checked)]')).count()).toEqual(7);
expect(element.all(by.xpath('//input[@type="checkbox" and @checked="checked"]')).count()).toEqual(3);