1
解決它下面的是我的頁面對象代碼承諾的工作沒有量角器
this.getRowBasedOnName = function (name) {
return this.tableRows.filter(function (elem, index) {
return elem.element(by.className('ng-binding')).getText().then(function (text) {
return text.toUpperCase().substring(0, 1) === name.toUpperCase().substring(0, 1);
});
});
};
上述函數被調用在另一功能相同的頁面對象,這是
this.clickAllProductInProgramTypeBasedOnName = function (name) {
this.getRowBasedOnName(name).then(function (requiredRow) {
requiredRow.all(by.tagName('label')).get(1).click();
});
};
但上述代碼拋出控制檯中的錯誤requiredRow.all是不是一個函數
但當我做到以下幾點:
this.clickAllProductInProgramTypeBasedOnName = function (name) {
var row = this.getRowBasedOnName(name)
row.all(by.tagName('label')).get(1).click();
};
此工作正常,並單擊所需的元素。
但this.getRowBasedOnName()函數返回一個承諾,這應該而且能夠解決它uisng 然後運作後使用。如何通過將其分配給變量來工作?
您的方法'this.getRowBasedOnName(name)'返回一個用web元素('ElementArrayFinder')的方法增加的承諾。對這些方法的呼籲將會帶來新的承諾。因此,在第一種情況下,您正在處理承諾,第二種情況下您處理的是數組的承諾結果。 –