量角器根据条件单击嵌套元素,错误 - 未在指定的超时内调用异步回调
Protractor clicking nested elements based on a condition, error - Async callback was not invoked within timeout specified
我正在尝试为我们在应用程序中使用的可重用 UI 控件之一创建一个页面 Object,这是一个 table 具有一堆 headers(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();
}
});
}
我收到以下错误
Error: Timeout - Async callback was not invoked within timeout
specified
我做错了什么?有人能给我指出正确的方向吗?
您需要使用 this
引用 gridAllColumns
并且您需要使用 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();
}
我正在尝试为我们在应用程序中使用的可重用 UI 控件之一创建一个页面 Object,这是一个 table 具有一堆 headers(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();
}
});
}
我收到以下错误
Error: Timeout - Async callback was not invoked within timeout specified
我做错了什么?有人能给我指出正确的方向吗?
您需要使用 this
引用 gridAllColumns
并且您需要使用 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();
}