使用:不选择元素

时间:2016-02-17 17:19:08

标签: angularjs protractor

我有一张价值表。我希望将表中最后一列的所有值相加。使用它作为最终的列单元格共享一个类似的类"total-cell"

var elements = element.all(by.css('tr > td > .total-cell'))

我现在希望忽略列表中的某些行(tr)。我想忽略的tr有一个共同的ng-hide类,所以我在我的选择器中添加了一个not语句,但它不起作用。我错过了什么吗?

var elements = element.all(by.css('tr:not(.ng-hide) > td > .total-cell'))

运行第二个选择器语句与第一个选择器语句具有相同的效果(就像忽略ng-hide属性一样?)

1 个答案:

答案 0 :(得分:3)

ng-hide class的存在使得元素根据规范不可见:

  

.ng-hide CSS类在AngularJS中预定义,并将display样式设置为none

这意味着我们只能过滤表格的可见行

var rows = element.all(by.css('tr > td > .total-cell'));
var visibleRows = rows.filter(function (row) {
    return row.isDisplayed().then(function (isDisplayed) {
        return isDisplayed;
    });
});
expect(visibleRows.getText()).toEqual(['10', '20', '30']);