【发布时间】:2016-11-25 17:56:45
【问题描述】:
我正在使用 Selenium Java 自动化一个 Web 应用程序,这个 Web 应用程序具有如下所示的 Angular js ng-repeat 表,它在每行内创建带有复选框的行。我需要根据条件选择几个复选框进行测试。
我正在使用下面的代码来查找这些复选框,但无法找到并单击。
// To locate table.
WebElement mytable = driver.findElement(By.xpath("//table[@class='table']/tbody"));
// To locate rows of table.
List<WebElement> rows_table = mytable.findElements(By.id("check"));
// To calculate no of rows In table.
int rows_count = rows_table.size();
System.out.println(rows_count);
网页源码如下所示
`<table class="table" ng-cloak>
<tbody>
<tr ng-repeat="C orderBy : colsort:reverseSort">
<td>
<input id="check" type="checkbox" ng-checked="C.Addc" ng-model="C.Addc" ng- click="FindMsg(C.Addc,C.MSG)" />
</td>
<td>
{{C.ItemCode}}
</td>
<td>
{{C.Code}}
</td>
<td title="{{C.LongDescription}}">
{{C.LongDescription.substr(0,30)}}...
</td>
<td style="width: 40px; text-align: right">
{{formattingEnd(C.Enduserprice)}}
</td>
<td>
{{C.type}}
</td>
<td>
{{C.statusflag.toUpperCase}}
</td>
<td>
{{C.SInstType}}
</td>
</tr>
</tbody>
</table>`
【问题讨论】:
-
您用来点击的代码在哪里?
id="checkCPE"的元素是什么? -
首先我试图识别复选框并使用下面的代码进行计数。但它返回 0。 id="check" 是在表的每一行中重复的复选框。 > List
rows_table = mytable.findElements(By.id("check")); -
检查页面上是否有多个表格以及您的表格是否位于
iframe/frame
标签: java selenium checkbox angularjs-ng-repeat ui-automation