访问量角器中表的第一行的第一列

时间:2019-03-03 17:58:58

标签: angularjs protractor e2e-testing

               <tr ng-repeat="a in people">
                    <td>
                        {{a.firstname}}
                    </td>
                    <td>
                        {{a.lastname}}
                    </td>
                    <td>
                        {{a.email}}
                    </td>
                </tr>

量角器代码

   var firstname = element.all(by.repeater('a in people'));          
   expect(firstname.get(0).getText()).toEqual('george');

这将返回整个第一行。如何获得第一列?谢谢

2 个答案:

答案 0 :(得分:2)

您可以这样获得它:

 var all = element.all(by.repeater('a in people')).all(by.css('td'));          
 expect(all.get(0).getText()).toEqual('george');

element.all(by.repeater('a in people'));只会找到一个元素。如果页面上有两个带有 repeater 文本的元素,它将找到两个。但是您还需要通过td进行搜索。

答案 1 :(得分:1)

从技术上讲,执行ng-repeat时,它将元素重复到dom中,在您的情况下,将重复标签。因此element.all(by.repeater('a in people'))会产生多行,因此get(0)方法将返回第一行。

我们可以使用以下代码来获取第一行的第一列。

      var firstname = element(by.repeater('a in people').row(0).column('a.firstname')); 
      expect(firstname.getText()).toEqual('xyz');