было интересно, смогу ли я получить помощь по этому вопросу.У меня есть массив <tr>
элементов, возвращаемых при объявлении этой ссылки webelement
locationAuditsBySourceListViewTableRows : { //returns an array
get : function(){
return this.locationAuditsBySourceListViewTable.all(by.repeater('audit in location.displayedProfileAudits'));
}
},
В одном из этих <tr>
элементов находится диапазон, содержащий текст, который указывает строку, которую я хотел бы выбрать.
Текущая структура, в которой я работаю, имеет несколько похожих методов, которые я пытался реорганизовать для своих целей, но этот код не работает:
locationAuditsListViewRowBySource : {
value : function(sourceName){
return this.locationAuditsBySourceListViewTableRows.filter(elem => {
//elem - placeholder as we iterate through each element within the locationAuditsBySourceListViewTableRows array
return elem.element(by.css(".source-name.ng-binding")).getText().then((val) => {
return val.toLowerCase() == sourceName.toLowerCase();
});
}).first();
}
},
Мне кажется, что путь, по которомуЯ пытаюсь сослаться на диапазон в строке таблицы неправильно (вызов выполняется в методе .filter ()):
return elem.element(by.css(".source-name.ng-binding")).getText().then((val) => {
Вот само определение шага:
Then(/^I should see that location audit for source row: "([^"]*)" has a label for the source$/, function (sourceName, callback) {
browser.wait(EC.visibilityOf(listingsPageObj.locationAuditsBySourceListViewContainer), timeouts.EC_TIMEOUT).then(() => {
browser.wait(EC.visibilityOf(listingsPageObj.locationAuditsBySourceListViewTable), timeouts.EC_TIMEOUT).then(() => {
browser.wait(() => {
return listingsPageObj.locationAuditsBySourceListViewTableHeaders.count().then(cnt => (cnt > 0)); //which means that there are audit results displayed
}).then(() => {
//find a row in the list of displayed audits
var tableRow = listingsPageObj.locationAuditsListViewRowBySource(sourceName);
});
});
});
});
Кто-нибудь может мне помочь / направить меня в правильном направлении?
Спасибо.