2016-01-29 8 views
2

Я хочу выбрать запись из списка с помощью текста. как я могу использовать функцию фильтра для выбора конкретной записи. У меня будет много вариантов, но я хочу выбрать значение, которое я хочу, проверив текст (например, испанский). Я не хочу выбирать значение по индексу becoz, если я сделаю это, я не смогу проверить тест, более того, список будет обновлен. любезную помощь. ниже r мой html-код.выберите запись из списка с текстом в Protractor

<ul class="addList"> 
    <li ng-repeat="skill in availableSkills" ng-click="addSkillFunc(skill, $index)" class="ng-binding ng-scope">Mandarin</li> 
<li ng-repeat="skill in availableSkills" ng-click="addSkillFunc(skill, $index)" class="ng-binding ng-scope">English</li> 
<li ng-repeat="skill in availableSkills" ng-click="addSkillFunc(skill, $index)" class="ng-binding ng-scope">Spanish</li> 
</ul> 

Да, я могу выбрать запись по индексу. но я хочу что-то вроде selectbyvisibleText, который доступен в Selenium.

+0

Вы пытались использовать 'getText()' функцию, чтобы получить текст списка, а затем вернуть тот, который соответствует? Спасибо –

+0

no @GirishSortur может объяснить, как это сделать. Как я могу получитьText из всех параметров и вернуть значение соответствия. – Dina

+0

Любые обновления, пожалуйста, @GirishSortur – Dina

ответ

1

Наконец-то получил решение. создал функцию SelectRowByCellValue и используется для вызова его там, где когда-либо я хочу от

SelectRowByCellValue(AGP.SkillList, Data.SkillSelect); 

SkillList = element.all (by.css ('Ul.addList Li')); SkillSelect = Значение, которое вы хотите выбрать. (Испанский)

this.SelectRowByCellValue = function (Elem, Texts) { 

Elem.filter(function (element) { 
return element.getText().then(function (text) { 
if (text == Texts) { 
element.click(); 
return false; 
} 
    }); 
}).then(function (filteredElements) { 

}); 
};