我正在撰写量角器测试用例。我想点击编辑按钮。当我通过id
进行检查时,找不到它。
代码:
<table class="table table-bordered table-hover">
<thead>
<tr>
<th>Code</th>
<th>Start Date</th>
<th></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="batch in batches.list">
<td><a ui-sref="root.courses.detail.batches.assessments({ batch_id: batch.id,assessment_status: 'published'})">BID00{{batch.id}}</a></td>
<td>{{batch.start_date}}</td>
<td>
<button id="edit" type="button" class="btn btn-default btn-sm" tooltip-placement="top" tooltip="Edit" ng-controller="batchesCtrl" ng-click="edit_batch(batch.id)"><i class="glyphicon glyphicon-edit"></i></button>
<button type="button" id="delete(batch.id)" class="btn btn-danger btn-sm" tooltip-placement="top" tooltip="Delete" ng-click="remove_batch(1, batch.id)" confirmation-needed="Do you really want to delete this batch?"><i class="glyphicon glyphicon-trash" ></i></button>
</td>
</tr>
</tbody>
</table>
我怎样才能让它发挥作用?
答案 0 :(得分:5)
您的示例中存在一些问题。在html中,ID在页面上应该是唯一的。因此,您无法在重复的元素中使用id。
您有几种选择。您可以通过其中一个样式来解决按钮,而另一个按钮没有像
那样element(by.repeater('batch in batches.list').row(0)).element(by.css('button.btn-default')).click();
您也可以指定您想要的第一个按钮
element(by.repeater('batch in batches.list').row(0)).element(by.css('button:first-of-type')).click();
或者,您也可以仅使用css来处理元素。有时这比转发器更容易维护:
element(by.css('tr:first-of-type > td:last-child > button:first-of-type')).click();
答案 1 :(得分:0)
这里我没有发送延迟,所以我正在检查未加载的按钮 ptor.sleep(500);解决了我的问题。花了很多时间来确定