Andurit
Andurit

Reputation: 5762

Protractor - Scroll down and click

I'm trying to simply scroll down in table and click on the element.

This is function which I have:

    var scrollIntoView = function () {
        arguments[0].scrollIntoView();
    }

    element.all(by.css('div.ui-grid-selection-row-header-buttons')).then(function(arr) { 
    var row = arr[8]; 
    browser.executeScript(scrollIntoView, row.getWebElement()).then(function () { 
    row.click(); 
    }); 
    });

This script actually work and even scroll down, bproblem start when i use higher number (index) in arr[];

For example 8 work, but if i use 20 it don't and I'm pretty sure there are like 50 values there so problem in that.

Any hint will help guys

Upvotes: 1

Views: 5705

Answers (3)

Harisha K P
Harisha K P

Reputation: 357

You can actually do something like this:

$$('div.ui-grid-selection-row-header-buttons').each(function (ele) {
    browser.actions().mouseMove(ele).click().perform();
});

$$ actually represents element.all(by.css('.abc'))

Also you can use filter() if you don't want to click on all the elements but pick elements based on filter criteria like this: https://www.protractortest.org/#/api?view=ElementArrayFinder.prototype.filter

Upvotes: 0

Sameera De Silva
Sameera De Silva

Reputation: 1980

This tested example demonstrate how to scroll to an element using javascript and click the same element .

it('scroll to element', function() {
       browser.driver.get('https://www.seleniumeasy.com/');
        var btnSubscribe= element(by.id('mc-embedded-subscribe'));
         browser.executeScript("arguments[0].scrollIntoView();", btnSubscribe);
         browser.sleep(2500);
         btnSubscribe.click();
      });

Upvotes: 1

Martin Blaustein
Martin Blaustein

Reputation: 1163

If you want to scroll to an element you can use

    browser.actions().mouseMove(element).perform();

After that the browser will be focusing the element.

Upvotes: 3

Related Questions