从表中获取属性 - 量角器

时间:2015-06-16 13:41:42

标签: javascript testing protractor end-to-end

我有一个包含多个TR行的表格,我需要能够点击<tr>或任何child <td>,其中VALUE为91,在下面的示例中,只有2个值,但是在未来可以有20个,也可以有不同的排序。

有没有办法可以从下面找到一个值并单击该元素?

<td class="ultranarrow ng-binding">91</td>

表格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>

1 个答案:

答案 0 :(得分:3)

当您需要精确的值匹配时,

xpath是您的朋友。这应该可以解决问题:

element.all(by.xpath('.//td[.="91" and @class="ultranarrow ng-binding"]')).click();