我正在尝试为我们在我们的应用程序中使用的可重用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();
}
});
}
我收到以下错误
错误:超时 - 超时内未调用异步回调 指定的
我做错了什么?有人能指出我正确的方向吗?
答案 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();
}