我正在尝试使用Nightwatch.js断言/验证属性的多个元素。
我尝试使用selenium的“elements”命令,但它似乎并没有真正返回一个标签。
browser.elements('css selector','icon_checkmark', function (result) {
this.verify.attributeEquals(result.value, 'aria-hidden', 'true');
})
控制台输出此错误:
Testing if attribute aria-hidden of <[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]> equals "true".
Element could not be located. - expected "true" but got: null
ERROR: Unable to locate element: "[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]" using: css selector
它似乎找到了正确的东西,因为应该有6但是不知怎的,我读出了错误的东西? result.log的result.value [0]只给出了{ELEMENT:'19'}这似乎是正确的。
知道怎么能让这个工作吗?我想检查具有类icon_checkmark的所有元素是否具有属性aria-hidden =“true”。
attributeEquals
使用css选择器定位元素,而elements
返回元素的ID
,因此你无法找到那个元素。您可以使用elementIdAttribute
获取元素并进行验证。
browser.elements('css selector','icon_checkmark', function (result) {
result.value.map(function (v, k) {
browser.elementIdAttribute(v.ELEMENT, 'aria-hidden', function (res) {
// true
return browser.assert.equal(res.value, 'expected value');
});
});
})
result.value是一个数组。所以你需要遍历数组result.value [x]