Nightwatch js如何断言多个元素

时间:2014-11-24 23:26:12

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

我试图使用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;。

2 个答案:

答案 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]