在 Protractor 中访问 table 第一行的第一列

Accessing the first column of first row of a table in Protractor

               <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');

这 returns 整个第一行。我如何获得第一列?谢谢

你可以这样得到:

 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 进行搜索。

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

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

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