我正在尝试使用 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.value[0] 的 Console.log 只给出 { 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');
});
});
})
关于javascript - Nightwatch js如何断言多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27116103/