从 table 获取属性 - 量角器
Get attribute from table - Protractor
我有一个包含多个 TR 行的 table,我需要能够单击 <tr>
或任何 child <td>
,其中 VALUE 为 91,在下面的示例中只有2 个值,但将来可以有 20 个值,并且它们也可以进行不同的排序。
有没有办法从下面找到一个值并单击该元素?
<td class="ultranarrow ng-binding">91</td>
Table HTML:
<tbody>
<!-- end ngRepeat: row in gridData | filter:gridFilter --><tr ng-click="toggle(row)" ng-repeat="row in gridData | filter:gridFilter" ng-class="{
selected: row.selected,
selectable: row.selectable,
'text-danger': !row.selectable,
modified: row.modified
}" class="ng-scope selectable">
<td class="minimal text-center">
<!-- ngIf: row.selectable --><a class="glyphicon glyphicon-ok dehover ng-scope text-disabled" ng-class="'text-' + (row.selected ? 'primary' : 'disabled')" ng-if="row.selectable"></a><!-- end ngIf: row.selectable -->
</td>
<td class="ultranarrow ng-binding">91</td>
<td class="ng-binding">Spoluúčast (dokumentace)</td>
<td class="narrow">
<!-- ngIf: row.selected -->
</td>
<td class="ultranarrow ng-binding">KČ</td>
</tr><!-- end ngRepeat: row in gridData | filter:gridFilter --><tr ng-click="toggle(row)" ng-repeat="row in gridData | filter:gridFilter" ng-class="{
selected: row.selected,
selectable: row.selectable,
'text-danger': !row.selectable,
modified: row.modified
}" class="ng-scope selectable">
<td class="minimal text-center">
<!-- ngIf: row.selectable --><a class="glyphicon glyphicon-ok dehover ng-scope text-disabled" ng-class="'text-' + (row.selected ? 'primary' : 'disabled')" ng-if="row.selectable"></a><!-- end ngIf: row.selectable -->
</td>
<td class="ultranarrow ng-binding">95</td>
<td class="ng-binding">Předcházející poškození (výpočet)</td>
<td class="narrow">
<!-- ngIf: row.selected -->
</td>
<td class="ultranarrow ng-binding">KČ</td>
</tr><!-- end ngRepeat: row in gridData | filter:gridFilter -->
</tbody>
当您需要精确值匹配时,xpath 是您的朋友。这应该可以解决问题:
element.all(by.xpath('.//td[.="91" and @class="ultranarrow ng-binding"]')).click();
我有一个包含多个 TR 行的 table,我需要能够单击 <tr>
或任何 child <td>
,其中 VALUE 为 91,在下面的示例中只有2 个值,但将来可以有 20 个值,并且它们也可以进行不同的排序。
有没有办法从下面找到一个值并单击该元素?
<td class="ultranarrow ng-binding">91</td>
Table HTML:
<tbody>
<!-- end ngRepeat: row in gridData | filter:gridFilter --><tr ng-click="toggle(row)" ng-repeat="row in gridData | filter:gridFilter" ng-class="{
selected: row.selected,
selectable: row.selectable,
'text-danger': !row.selectable,
modified: row.modified
}" class="ng-scope selectable">
<td class="minimal text-center">
<!-- ngIf: row.selectable --><a class="glyphicon glyphicon-ok dehover ng-scope text-disabled" ng-class="'text-' + (row.selected ? 'primary' : 'disabled')" ng-if="row.selectable"></a><!-- end ngIf: row.selectable -->
</td>
<td class="ultranarrow ng-binding">91</td>
<td class="ng-binding">Spoluúčast (dokumentace)</td>
<td class="narrow">
<!-- ngIf: row.selected -->
</td>
<td class="ultranarrow ng-binding">KČ</td>
</tr><!-- end ngRepeat: row in gridData | filter:gridFilter --><tr ng-click="toggle(row)" ng-repeat="row in gridData | filter:gridFilter" ng-class="{
selected: row.selected,
selectable: row.selectable,
'text-danger': !row.selectable,
modified: row.modified
}" class="ng-scope selectable">
<td class="minimal text-center">
<!-- ngIf: row.selectable --><a class="glyphicon glyphicon-ok dehover ng-scope text-disabled" ng-class="'text-' + (row.selected ? 'primary' : 'disabled')" ng-if="row.selectable"></a><!-- end ngIf: row.selectable -->
</td>
<td class="ultranarrow ng-binding">95</td>
<td class="ng-binding">Předcházející poškození (výpočet)</td>
<td class="narrow">
<!-- ngIf: row.selected -->
</td>
<td class="ultranarrow ng-binding">KČ</td>
</tr><!-- end ngRepeat: row in gridData | filter:gridFilter -->
</tbody>
xpath 是您的朋友。这应该可以解决问题:
element.all(by.xpath('.//td[.="91" and @class="ultranarrow ng-binding"]')).click();