【问题标题】:Nightwatch js how to assert multiple elementsNightwatch js如何断言多个元素
【发布时间】:2014-11-24 23:26:11
【问题描述】:

我正在尝试使用 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,但不知何故我读出了错误的东西?结果.value[0] 的 Console.log 只给出了 { ELEMENT: '19' } 这似乎是正确的。

知道我怎样才能完成这项工作吗?我想检查具有 icon_checkmark 类的所有元素是否具有属性 aria-hidden="true"。

【问题讨论】:

标签: javascript selenium accessibility functional-testing nightwatch.js


【解决方案1】:

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');
    });
  });
})

【讨论】:

    【解决方案2】:

    result.value 是一个数组。所以你需要遍历数组 result.value[x]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-03
      • 1970-01-01
      • 2018-01-26
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多