在量角器中选择嵌套ng-repeat中的文本

时间:2014-04-22 18:58:55

标签: angularjs timeout angularjs-ng-repeat protractor

我在搜索框下面有一个嵌套的建议列表,如下所示:

<div class="type-row clearfix" data-ng-class="suggestion_type.klass" data-ng-repeat="suggestion_type in searchBoxData.suggestion_types">
  <div class="type-name-wrapper" data-ng-show="suggestion_type.contents.length > 0">
    <div class="type-name small semi-bold">{{suggestion_type.name}}</div>
  </div>
  <div class="type-content" data-ng-show="suggestion_type.contents.length > 0">
    <ul>
      <li data-ng-repeat="content in suggestion_type.contents" data-ng-class="{ selected: content.selected}" data-ng-mouseover="searchBoxData.selectSuggestion($parent.$index, $index)">
        <div class="row-wrapper light clearfix" data-ng-click="searchBoxData.submitQuery($event);">
          <div data-ng-bind-html="content.category_string"></div>
          <div data-ng-bind-html="content.other_string"></div>
        </div>
      </li>
    </ul>
  </div>
</div>

例如,我想编写一个集成测试,用于检查显示的建议数量以及首先显示的建议类型。

我开始使用protactor编写测试。它还没有完成,因为我正在努力理解console.logs的输出。到目前为止它看起来像这样:

describe('autocomplete display', function(){

  it('displays 2 results for categories and 2 results for task on -plu- search input ', function(){
    var searchBox = element(by.id("inputAnimation"));
    searchBox.sendKeys("plu").then(function(){

      element.all(by.repeater('suggestion_type in searchBoxData.suggestion_types')).then(function(rows) {
        console.log(rows);

        for(var i=0;i<rows.length;i++){
          rows[i].getText().then(function(foo){
            console.log(foo);
          });
          rows[i].then(function(row){
            row.findElements(by.binding('suggestion_type.name')).then(function(res){
              res[0].getText().then(function(name){
                console.log(name);
              });

            });


          });
        }
      });

    });
  });
});

它的一个问题是没有超时,因此服务器并不总是有时间向我发送结果。另一个问题是我不理解为什么foo似乎匹配绑定到ng-repeat中的suggestion_type对象的所有文本。任何帮助将不胜感激。

0 个答案:

没有答案