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();
}
}