如何使用 Protractor 在 ng-repeat 列表中获取按钮
How to get a button in a ng-repeat list with Protractor
我正在测试(使用端到端测试)一个应用程序。我的问题是点击由 N 个中继器组成的 ng-repeat 列表的按钮。
如何使用 class btn-danger(下面代码行中的最后一个)获取第二行的按钮? (应用程序中有很多带有此 class 的按钮)。
这是代码的一部分:
<tr ng-repeat="cat in cats" ng-class="expression" class="ng-scope danger">
<td class="ng-binding">Info 1</td>
<td class="ng-binding">Info 2</td>
<td>
<span class="glyphicon glyphicon-ok ng-hide" ng-show="function()"></span>
</td>
<td>
<button class="btn btn-xs btn-danger" ng-class="expression2" popover-html="infoes" popover-trigger="click">
<span class="glyphicon glyphicon-search" <="" span=""></span>
</button>
</td>
<td>
<button class="btn btn-xs btn-danger" ng-show="function2()" ng-click="function3()" ng-disabled="function4()">
<span class="glyphicon glyphicon-x"></span>
</button>
</td>
</tr>
如果您可以使用 chrome 访问您的页面,您可以检查该元素并获取他的 select 或他的 xpath :
使用那个 select 或者你可以 select 你的元素(使用任何 select 或者你已经用于那个目的)。
如果您只需要第二个元素 select 它,您将获得的 xpath 将始终指向第二个元素。希望对您有所帮助!
我是这样解决的:
var item = element.all(by.repeater('cat in cats')).get(0);
item.element(by.css('button[ng-click="function3()"')).click();
我正在测试(使用端到端测试)一个应用程序。我的问题是点击由 N 个中继器组成的 ng-repeat 列表的按钮。 如何使用 class btn-danger(下面代码行中的最后一个)获取第二行的按钮? (应用程序中有很多带有此 class 的按钮)。
这是代码的一部分:
<tr ng-repeat="cat in cats" ng-class="expression" class="ng-scope danger">
<td class="ng-binding">Info 1</td>
<td class="ng-binding">Info 2</td>
<td>
<span class="glyphicon glyphicon-ok ng-hide" ng-show="function()"></span>
</td>
<td>
<button class="btn btn-xs btn-danger" ng-class="expression2" popover-html="infoes" popover-trigger="click">
<span class="glyphicon glyphicon-search" <="" span=""></span>
</button>
</td>
<td>
<button class="btn btn-xs btn-danger" ng-show="function2()" ng-click="function3()" ng-disabled="function4()">
<span class="glyphicon glyphicon-x"></span>
</button>
</td>
</tr>
如果您可以使用 chrome 访问您的页面,您可以检查该元素并获取他的 select 或他的 xpath :
使用那个 select 或者你可以 select 你的元素(使用任何 select 或者你已经用于那个目的)。
如果您只需要第二个元素 select 它,您将获得的 xpath 将始终指向第二个元素。希望对您有所帮助!
我是这样解决的:
var item = element.all(by.repeater('cat in cats')).get(0);
item.element(by.css('button[ng-click="function3()"')).click();