2013-11-14 22 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