Dina
Dina

Reputation: 135

select a record from a list-box using text in Protractor

I want to select the record from the list box using text. how can i use the filter function to select the particular record. I will be having many options but i want to select the value which i want by checking the text (e.g Spanish). I dont want to select value by index becoz if i do that i wont be able to verify test, moreover list gets updated. kindly help. below r my html code.

 <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>

Yea i can select the record by index. but i want something like selectbyvisibleText which is available in Selenium.

Upvotes: 2

Views: 833

Answers (1)

Dina
Dina

Reputation: 135

Finally got the solution. created a function SelectRowByCellValue and used to call it where ever i want by

SelectRowByCellValue(AGP.SkillList, Data.SkillSelect); 

SkillList = element.all(by.css('Ul.addList li')); SkillSelect = Value that u want to select. (Spanish)

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) {

 });
};

Upvotes: 1

Related Questions