量角器根据条件单击嵌套元素,错误 - 在指定的超时时间内未调用异步回调

时间:2016-02-19 16:06:13

标签: javascript protractor pageobjects

我正在尝试为我们在我们的应用程序中使用的可重用UI控件之一创建一个页面对象,这是一个包含多个标题(th)的表,其中包含要过滤的按钮。我想单击特定th元素的按钮。这是我的代码

this.gridAllColumns = browser.element(by.css('[grid-service=envGridService]')).all(by.tagName('th'));

this.filterColumn = function(columnName){
    gridAllColumns.each(function(element){
        var text = element.getText();
        if( text = columnName){
            console.log(text);
            var buttonElement = element.element(by.tagName('button'));
            buttonElement.click();
        }
    });
}

我收到以下错误

  

错误:超时 - 超时内未调用异步回调   指定的

我做错了什么?有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

您需要使用gridAllColumns来引用this,并且需要使用filter()

this.filterColumn = function(columnName) {
    this.gridAllColumns.filter(function(header) {
        return header.getText().then(function (headerText) {
            return headerText === columnName;
        });
    }).first().element(by.tagName('button')).click();
}