top of page

Selenium Java Tutorial

Scrolling A Web Page

What is ScrollBar in Web Applications ?

A scrollbar moves the window up-down and left right direction if the current page scroll does not fit the visible area of the screen. It is of two types :
  • Vertical scroll

  • Horizontal scroll

Scroll in Selenium
To automate scrolling selenium webdriver provides an interface JavascriptExecutor .

import org.openqa.selenium.JavascriptExecutor;


Create object for JavascripExecutor :

JavascriptExecutor jse=(JavascriptExecutor) driver;


Perform scrolling by scrollBy() method :

jse.executeScript("window.scrollBy(x-axis pixel,y-axis pixel)");


Vertical scroll
> Vertically scroll from top to bottom or bottom to top :

Downside : jse.executeScript("window.scrollBy(0,document.body.scrollHeight)"); Upside : jse.executeScript("window.scrollBy(0,-document.body.scrollHeight)");


> Vertically scroll by specified pixel value :

Downside : jse.executeScript("window.scrollBy(0,3500)"); Upside : jse.executeScript("window.scrollBy(0,-3500)");


> Vertically scroll by the visibility of webelement :

WebElement Element=driver.findElement(By.cssSelector("a[href='/open-source/maven-plugins']")); jse.executeScript("arguments[0].scrollIntoView();",Element); ​


Vertical Scrolling from top to bottom and bottom to top =>

package seleniumexamples; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class ScrollVertically_Top_Bottom { public static void main(String[] args) throws InterruptedException { // TODO Auto-generated method stub WebDriver driver; String baseURL="https://mvnrepository.com/"; //Launch the web browser System.setProperty("webdriver.chrome.driver","..\\SeleniumJava\\drivers\\chromedriver99.exe"); driver=new ChromeDriver(); //To maximize the size of window driver.manage().window().maximize(); //Navigate through an URL driver.get(baseURL); //Perform scroll on a particular web page.... JavascriptExecutor jse=(JavascriptExecutor) driver; //Scroll to bottom... jse.executeScript("window.scrollBy(0,document.body.scrollHeight)"); Thread.sleep(3000); //Scroll to top... jse.executeScript("window.scrollBy(0,-document.body.scrollHeight)"); Thread.sleep(3000); //close all the windows driver.quit(); } }


Vertically scroll down and up by specified pixel and by the visibility of WebElement =>

package seleniumexamples; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class Scroll_VerticallyAsPerPixelAndToElement { public static void main(String[] args) throws InterruptedException { // TODO Auto-generated method stub WebDriver driver; String baseURL="https://mvnrepository.com/"; //Launch the web browser System.setProperty("webdriver.chrome.driver","..\\SeleniumJava\\drivers\\chromedriver99.exe"); driver=new ChromeDriver(); //To maximize the size of window driver.manage().window().maximize(); //Navigate through an URL driver.get(baseURL); WebElement Element=driver.findElement(By.cssSelector("a[href='/open-source/maven-plugins']")); //Perform scroll on a particular web page.... JavascriptExecutor jse=(JavascriptExecutor) driver; //Scroll down by a specified pixel... jse.executeScript("window.scrollBy(0,3500)"); Thread.sleep(3000); //Scroll up by a specified pixel... jse.executeScript("window.scrollBy(0,-3500)"); Thread.sleep(3000); //Scroll vertically till the element is found... jse.executeScript("arguments[0].scrollIntoView();",Element); Thread.sleep(3000); //close all the windows driver.quit(); } }


Horizontal scroll
> Horizontally scroll from right to left or left to right :

Right Side : jse.executeScript("window.scrollBy(document.body.scrollHeight,0)"); Left Side : jse.executeScript("window.scrollBy(-document.body.scrollHeight,0)");

> Horizontally scroll by specified pixel value :

Right Side : jse.executeScript("window.scrollBy(4000,0)"); Left Side : jse.executeScript("window.scrollBy(-5500,0)");

> Horizontally scroll by the visibility of webelement :

WebElement Element=driver.findElement(By.xpath("//img[@src='images/silly_questions.gif']")); jse.executeScript("arguments[0].scrollIntoView();",Element);



Horizontal Scrolling from left to right and right to left =>

package seleniumexamples; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class ScrollHorizontally_Left_Right { public static void main(String[] args) throws InterruptedException { // TODO Auto-generated method stub WebDriver driver; String baseURL="https://dashboards.handmadeinteractive.com/jasonlove/"; //Launch the web browser System.setProperty("webdriver.chrome.driver","..\\SeleniumJava\\drivers\\chromedriver99.exe"); driver=new ChromeDriver(); //To maximize the size of window driver.manage().window().maximize(); //Navigate through an URL driver.get(baseURL); //Perform scroll on a particular web page.... JavascriptExecutor jse=(JavascriptExecutor) driver; //Scroll to right... jse.executeScript("window.scrollBy(document.body.scrollHeight,0)"); Thread.sleep(3000); //Scroll to left... jse.executeScript("window.scrollBy(-document.body.scrollHeight,0)"); Thread.sleep(3000); driver.close(); } } ​


Horizontally scroll right and left by specified pixel and by the visibility of WebElement =>

package seleniumexamples; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class Scroll_HorizontallyAsPerPixelAndToElement { public static void main(String[] args) throws InterruptedException { // TODO Auto-generated method stub WebDriver driver; String baseURL="https://dashboards.handmadeinteractive.com/jasonlove/"; //Launch the web browser System.setProperty("webdriver.chrome.driver","..\\SeleniumJava\\drivers\\chromedriver99.exe"); driver=new ChromeDriver(); //To maximize the size of window driver.manage().window().maximize(); //Navigate through an URL driver.get(baseURL); WebElement Element=driver.findElement(By.xpath("//img[@src='images/silly_questions.gif']")); //Perform scroll on a particular web page.... JavascriptExecutor jse=(JavascriptExecutor) driver; //Scroll right by a specified pixel... jse.executeScript("window.scrollBy(4000,0)"); Thread.sleep(3000); //Scroll left by a specified pixel... jse.executeScript("window.scrollBy(-5500,0)"); Thread.sleep(3000); //Scroll horizontally till the element is found... jse.executeScript("arguments[0].scrollIntoView();",Element); Thread.sleep(3000); //close all the windows driver.quit(); } } ​ ​

Refer next page Selenium Assertions
bottom of page