2013-11-14 25 views
6

在HTML页中我有:量角器的getText在中继器阵列

<ul class="phones"> 
       <li ng-repeat="phone in phones | filter:query | orderBy: orderProp"> 
       {{phone.name}} - {{phone.age}} 
       <p>{{phone.snippet}}</p> 
       </li> 
      </ul> 

在E2E测试我有(被返回阵列中的两个元素):

  var result= ptor.findElements(protractor.By.repeater('phone in phones').column('phone.name')); 

      result.then(function(arr) { 
       arr[0].getText().then(function(text) { 
        console.log("*** 1: "+ text); 
       }); 

       arr[1].getText().then(function(text) { 
        console.log("*** 2: "+ text); 
       }) 
      }); 

该控制台是打印所有三栏,phone.name,phone.age和phone.snippet。 为什么选择器不只是返回phone.name?

它实际上返回无论我在列表中“李”,纯文本或绑定。

+0

它应该是'.COLUMN( '名')'按例子这里https://github.com/angular/protractor/blob/master/docs/getting- started.md#写作测试? – Heikki

+0

不,没做到,仍然回来所有的文本 – bmw0128

+2

一个问题可能是量角器试图找到那里的元素,因为'phone.name'绑定的包装元素是'li',它的返回值是。也许尝试用'.column('snippet')'看看是否返回'p'? – Heikki

回答

3

示例尝试找到与下面的战略要素(柱部被固定为每注释):

protractor.By.repeater('phone in phones').column('name') 

中继部分li元素相匹配,然后进入与phone.name结合找到元件(一个或多个)。它的包装元素碰巧是相同的li

将列部分更改为.column('snippet')返回p元素,因为phone.snippet绑定被发现在那些内部。

相关的文档/例子在这里:https://github.com/angular/protractor/blob/master/docs/getting-started.md#writing-tests