如何使用Protractor按文本查找并单击表元素?

时间:2015-06-02 11:35:33

标签: javascript angularjs selenium protractor end-to-end

<tr id="item" ng-repeat="item in itemList>
   <td id="code" ng-repeat="column in columns">Some Text</td>
</tr>

我已经看过其他一些类似的问题,但我还没有解决。 这就是我迄今为止所尝试的内容:

element.all(by.repeater('column in columns')).findElement(by.id('code')).getText('Some Text').click();

修改

<tr ng-repeat="item in items>
<td>{{item.name}}</td>
<td>{{item.description}}</td>
</tr>

结果是:

<tr>
<td>Some Name</td>
<td>Some Text</td>
</tr>
<tr>
<td>More Name</td>
<td>More Text</td>
</tr>

等等

1 个答案:

答案 0 :(得分:4)

您需要filter()所需的元素:

var columns = element.all(by.repeater('column in columns'));
columns.filter(function (elm) {
    return elm.getText().then(function (text) {
        return text == 'Some Text';
    });
}).first().click();