首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用nightwatch.js断言webelements列表的文本值

使用nightwatch.js断言webelements列表的文本值
EN

Stack Overflow用户
提问于 2015-05-12 22:30:59
回答 5查看 17.1K关注 0票数 10

我刚开始使用nightwatch.js。我想要获取一个元素列表,并验证每个元素的文本值和给定字符串。我试过了:

代码语言:javascript
复制
function iter(elems) {
      elems.value.forEach(function(element) {
        client.elementIdValue(element.ELEMENT)
      })
    };
    client.elements('css selector', 'button.my-button.to-iterate', iter);

对于另一个堆栈溢出问题,但我现在使用的是

代码语言:javascript
复制
waitForElementPresent('elementcss', 5000).assert.containsText('elementcss','Hello')

并且它将向我返回输出

代码语言:javascript
复制
Warn: WaitForElement found 5 elements for selector "elementcss". Only the first one will be checked.

所以我希望它应该验证列表中每个元素的文本值。

EN

回答 5

Stack Overflow用户

发布于 2015-05-13 18:01:27

所有的事情都不是通过nightwatch js简单的命令就能完成的,所以他们提供了自定义命令手段selenium协议。在这里,您可以拥有所有的selenium protocol。我使用了以下代码来断言具有给定字符串" text“的每个元素的文本值。希望能对你有所帮助

代码语言:javascript
复制
    module.exports = {
  '1. test if multiple elements have the same text' : function (browser) {
    function iter(elems) {
       elems.value.forEach(function(element) {
        browser.elementIdText(element.ELEMENT, function(result){
          browser.assert.equal(result.value,'text')
        })
       })
     };

    browser
      .url('file:///home/user/test.html')
      .elements('tag name', 'a', iter);

    }

  };

我的HTML代码片段

代码语言:javascript
复制
<div id="test">
<a href="google.com" class='red'> text </a>
<a href="#" class='red'> text </a>
<a href="#" class='red'> text 1</a>
</div>

票数 8
EN

Stack Overflow用户

发布于 2015-05-13 18:43:05

我可以这样做:

代码语言:javascript
复制
.elements('css selector', 'cssValue', function (elements) {
        for(var i=0;i<elements.value.length;i++){
        var elementCss = 'div.search-results-item:nth-child(' + (i+1) + ') span';
            client.assert.containsText(elementCss,'textValue');
        }
        })
票数 2
EN

Stack Overflow用户

发布于 2016-01-15 19:33:07

将你的函数iter放在一个for循环中,然后再使用

代码语言:javascript
复制
client.elements('css selector', '#CollectionClass', function (result) {
  if(result.value.length > 1) {   
     var count;
     for(count=1; count<result.value.length; count++) {
       result.value.forEach(function(element) {
       client.elementIdValue(element.ELEMENT);
       client.elementIdText(selectedHighlight.ELEMENT, function(resuddlt) {
         this.assert.equal(typeof resuddlt, "object");
         this.assert.equal(resuddlt.status, 0);
         this.assert.equal(resuddlt.value, "your value");
      });
     }     
   }
  }
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30193943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档