我试图使用Nightwatch.js断言/验证属性的多个元素。
我尝试使用"元素"由selenium命令,但似乎实际上没有返回标签。
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:&#39; 19&#39;这似乎是正确的。
任何想法我怎么能让这个工作?我想检查具有类icon_checkmark的所有元素是否具有属性aria-hidden =&#34; true&#34;。
答案 0 :(得分:9)
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');
});
});
})
答案 1 :(得分:-3)
result.value是一个数组。所以你需要遍历数组result.value [x]