Я подозреваю, что basePage.waitForElement(this.tenantRowElements, 5000);
недостаточно, чтобы дождаться полной загрузки страницы.Итак, вы столкнулись с проблемой на первой итерации цикла,
Добавьте browser.sleep(15000)
после basePage.waitForElement(this.tenantRowElements, 5000);
для целей отладки.
И вы можете использовать filter()
длясделайте ваш код кратким:
this.clickEditOfTenant = function(userobj) {
console.log("call clickEditOfTenant()");
// basePage.waitForElement(this.tenantRowElements, 5000);
browser.sleep(15000)
this.tenantRowElements.filter(function(tr) {
return tr.all(by.css('td')).get(1).getText().then(function(name) {
return name === userobj.tname;
});
})
.then(function(eles) {
if(eles.length > 0) {
eles[0].click();
}
})
.then(function () {
if(basePage.isVisible(updateTenant.tenantNameTxtBox)) {
console.log("Edit button is clicked");
}
});
};