0

Am trying to scroll the page which is built using React JS. The page is not scrolling even after using js.executeScript("scroll(0, 250);"); not working
and tried the method scroll until some element visibility.

Sers
  • 12,047
  • 2
  • 12
  • 31
  • 2
    check this out https://stackoverflow.com/questions/12293158/page-scroll-up-or-down-in-selenium-webdriver-selenium-2-using-java It might help you – Akbar Feb 25 '19 at 06:16
  • @user966256 Update the question with the _url_ you are invoking through `get()` along with the second and third _url_ after first and second refresh. – undetected Selenium Feb 25 '19 at 09:31

3 Answers3

0

Can you try this, I hope global variable window is missed in your code

// scroll vertically
js.executeScript("window.scrollTo(0, 1000);") 

// scroll horizontally
js.executeScript("window.scrollTo(1000, 0);") 


//scroll to particular element
WebElement Element = driver.findElement(By.id("someID"));
js.executeScript("arguments[0].scrollIntoView();", Element);
Amit Jain
  • 4,389
  • 2
  • 18
  • 21
  • No the same is worked for different sites but in this case after login dashboard is taking two auto refresh to load and then i need to scroll down. Not working – user966256 Feb 25 '19 at 07:32
  • do you solve your problem? I have the same problem. –  Jul 18 '19 at 20:45
0

You can use the below method that I have written to scroll to a particular element. You just need to pass Driver object.

// Method to scroll down to specific element
public static void scrollToElement(WebDriver driver) throws InterruptedException {
String key = "";
WebElement element = null;
JavascriptExecutor js = (JavascriptExecutor) driver;
element = driver.findElement(By.xpath(locator));
// This will scroll the page till the element is found
js.executeScript("arguments[0].scrollIntoView(true);", element);
Thread.sleep(2000);
}
Ruben Helsloot
  • 12,582
  • 6
  • 26
  • 49
Bhavesh Soni
  • 188
  • 8
0

As u mentioned, page getting auto refreshed 2 times and then loading. There could be an issue because you trying to scroll the page after first auto refreshed. There shall be some micro second delay between these 2 auto refreshed so selenium is trying to scroll the page but before it could happen site is getting auto refreshed 2 time. Can I request you to have checkpoint before ur JavaScript scrolling method and do the debugging to ensure, it's actually working or not. If it does work then of course u need to perform any action after 2 auto refreshed happens.

TheSociety
  • 1,936
  • 2
  • 8
  • 20