【问题标题】:Accessing the first column of first row of a table in Protractor访问量角器中表格第一行的第一列
【发布时间】:2019-07-25 02:22:38
【问题描述】:
               <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');

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

【问题讨论】:

    标签: angularjs protractor e2e-testing


    【解决方案1】:

    你可以这样得到它:

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

    【讨论】:

      【解决方案2】:

      从技术上讲,当 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');       

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-17
        • 2017-03-07
        • 2022-09-23
        • 2015-02-06
        • 2020-11-20
        • 1970-01-01
        • 1970-01-01
        • 2017-04-06
        相关资源
        最近更新 更多