nrs
nrs

Reputation: 945

How to click on multiple elements having same class name in protractor angular?

First element html code:

<div class="block ng-scope" ng-repeat="skills in data.primary_skills">
                    <div class="block skillsLineItem" ng-class="{manditorySkillsLineItem:skills.mandatory, skillsLineItem:!skills.mandatory}"> 

 <label title="Testing" class="skill-name col-xs-5 text-overflow-ellipsis ng-binding" ng-click="toggleMandatory(skills)">
                              <!-- ngIf: skills.mandatory -->
                              <!-- ngIf: skills.userdefined -->
                              &nbsp;Testing
                            </label>

Second element Html code

<label title="Test Scripts" class="skill-name col-xs-5 text-overflow-ellipsis ng-binding" ng-click="toggleMandatory(skills)">
                          <!-- ngIf: skills.mandatory -->
                          <!-- ngIf: skills.userdefined -->
                          &nbsp;Test Scripts
                        </label>

In our application multiple elements having same class name and ng-click values so how can i click on multiple elements using same class or ng-click values. I have to click on both elements so please help me.

Upvotes: 1

Views: 5148

Answers (1)

alecxe
alecxe

Reputation: 473873

You can find all of them and use each():

element.all(by.css("label[ng-click*=toggleMandatory]")).each(function (label) {
    label.click();
});

You can use filter() to filter out only necessary elements:

element.all(by.css("label[ng-click*=toggleMandatory]")).filter(function (label, index) {
    return index <= 5;
}).each(function (label) {
    label.click();
});

Upvotes: 3

Related Questions