Nightwatch js如何断言多个元素

问题描述 投票:9回答:2

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

javascript selenium accessibility functional-testing nightwatch.js
2个回答
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');
    });
  });
})

-3
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.