javascript - Nightwatch js如何断言多个元素

标签 javascript selenium accessibility functional-testing nightwatch.js

我正在尝试使用 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/

相关文章:

javascript - 通过 JavaScript 暂停页面加载

javascript - 如何输出 jQuery 对象的完整 HTML,包括数据?

php - javascript 对象的 XMLHttpRequest setRequestHeader 方法不起作用

python - 按值查找元素 Selenium/Python

javascript - 在 Node.js 中导出 Mongoose 代码 - 将值从 Mongoose 方法传递给回调

java.lang.NoClassDefFoundError : org/openqa/selenium/remote/HttpVerb 错误

javascript - FluentAutomation 和查找元素同级

linux - 从 X 窗口传播所有事件

reactjs - 将辅助功能属性传递给 Material-ui-pickers Calendar 中的嵌套按钮

html - 在您的链接中包含标题 =""好吗?