zoukankan      html  css  js  c++  java
  • [Selenium+Java] Scroll UP or Down a page in Selenium Webdriver

    Original URL: https://www.guru99.com/scroll-up-down-selenium-webdriver.html

    Scroll UP or Down a page in Selenium Webdriver


    What is a Scrollbar?

    A Scrollbar is a lets you move around screen in horizontal or vertical direction if the current page scroll does not fit the visible area of the screen. It is used to move the window up and down.

    Selenium Webdriver does not require scroll to perform actions as it manipulates DOM. But in certain web pages, elements only become visible once the user have scrolled to them. In such cases scrolling may be necessary.

    Scroll bar is of two type : Horizontal and vertical scroll bar as shown in below screenshot.

    Scroll in Selenium

    To scroll using Selenium, you can use JavaScriptExecutor interface that helps to execute JavaScript methods through Selenium Webdriver

    Learn more about JavaScriptExecutor

    Syntax :

    JavascriptExecutor js = (JavascriptExecutor) driver;  
       js.executeScript(Script,Arguments);
    • Script – This is the JavaScript that needs to execute.
    • Arguments – It is the arguments to the script. It's optional.

    Selenium Script to scroll down the page

    Let's, see the scroll down a web page using the selenium webdriver with following 3 scenarios :

    Scenario 1: To scroll down the web page by pixel.

    Selenium Script

    import org.openqa.selenium.JavascriptExecutor;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.testng.annotations.Test;
    
    public class ScrollByPixel {
    
        WebDriver driver;
        @Test
        public void ByPixel() {
            System.setProperty("webdriver.chrome.driver", "E://Selenium//Selenium_Jars//chromedriver.exe");
            driver = new ChromeDriver();
    
            JavascriptExecutor js = (JavascriptExecutor) driver;
    
            // Launch the application		
            driver.get("http://demo.guru99.com/test/guru99home/");
    
            //To maximize the window. This code may not work with Selenium 3 jars. If script fails you can remove the line below		
            driver.manage().window().maximize();
    
            // This  will scroll down the page by  1000 pixel vertical		
            js.executeScript("window.scrollBy(0,1000)");
        }
    }
    

    Script Description: In the above code first we launch the given URL in Chrome browser. Next, scroll the page by 1000 pixels through executeScript. Javascript method ScrollBy() scrolls the web page to the specific number of pixels.

    The syntax of ScrollBy() methods is :

    executeScript("window.scrollBy(x-pixels,y-pixels)");

    x-pixels is the number at x-axis, it moves to the left if number is positive and it move to the right if number is negative .y-pixels is the number at y-axis, it moves to the down if number is positive and it move to the up if number is in negative .

    Example:

    js.executeScript("window.scrollBy(0,1000)"); //Scroll vertically down by 1000 pixels		

    Output analysis : Here is the output when you execute the above script .

    Scenario 2: To scroll down the web page by the visibility of the element.

    Selenium Script

    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;
    import org.testng.annotations.Test;
    
    public class ScrollByVisibleElement {
    
        WebDriver driver;
        @Test
        public void ByVisibleElement() {
            System.setProperty("webdriver.chrome.driver", "G://chromedriver.exe");
            driver = new ChromeDriver();
            JavascriptExecutor js = (JavascriptExecutor) driver;
    
            //Launch the application		
            driver.get("http://demo.guru99.com/test/guru99home/");
    
            //Find element by link text and store in variable "Element"        		
            WebElement Element = driver.findElement(By.linkText("Linux"));
    
            //This will scroll the page till the element is found		
            js.executeScript("arguments[0].scrollIntoView();", Element);
        }
    }
    

    Script Description: In the above code, we first launch the given url in Chrome browser. Next, scroll the page until the mentioned element is visible on the current page. Javascript method scrollIntoView() scrolls the page until the mentioned element is in full view :

    js.executeScript("arguments[0].scrollIntoView();",Element );	

    "arguments[0]" means first index of page starting at 0.

    Where an " Element " is the locator on the web page.

    Output analysis : Here is the output when you execute the above script .

    Scenario 3: To scroll down the web page at the bottom of the page.

    Selenium Script

    import org.openqa.selenium.JavascriptExecutor;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.testng.annotations.Test;
    
    public class ScrollByPage {
    
        WebDriver driver;
        @Test
        public void ByPage() {
            System.setProperty("webdriver.chrome.driver", "E://Selenium//Selenium_Jars//chromedriver.exe");
            driver = new ChromeDriver();
    
            JavascriptExecutor js = (JavascriptExecutor) driver;
    
            // Launch the application		
            driver.get("http://demo.guru99.com/test/guru99home/");
    
            //This will scroll the web page till end.		
            js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
        }
    }
    

    Script Description : In the above code, we first launch the given url in Chrome browser. Next, scroll till the bottom of the page. Javascript method scrollTo() scroll the till the end of the page .

    js.executeScript("window.scrollTo(0, document.body.scrollHeight)");		

    "document.body.scrollHeight" returns the complete height of the body i.e web page.

    Output analysis: Here is the output when you execute the above script.

    Scenario 4: Horizontal scroll on the web page.

    Selenium Script

    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;
    import org.testng.annotations.Test;
    
    public class HorizontalScroll {
    
        WebDriver driver;
        @Test
        public void ScrollHorizontally() {
            System.setProperty("webdriver.chrome.driver", "E://Selenium//Selenium_Jars//chromedriver.exe");
            driver = new ChromeDriver();
    
            JavascriptExecutor js = (JavascriptExecutor) driver;
    
            // Launch the application		
            driver.get("http://demo.guru99.com/test/guru99home/scrolling.html");
    
            WebElement Element = driver.findElement(By.linkText("VBScript"));
    
            //This will scroll the page Horizontally till the element is found		
            js.executeScript("arguments[0].scrollIntoView();", Element);
        }
    }
    

    Script Description : In the above code, we first launch the given url in Chrome browser. Next, scroll the page horizontally until the mentioned element is visible on the current page. Javascript method scrollIntoView() scrolls the page until the mentioned element is in full view :

    js.executeScript("arguments[0].scrollIntoView();",Element );

    Output analysis: Here is the output when you execute the above script.

    Summary

    • In the above tutorial, we illustrate the scroll of the web page through different scenarios.
    • In the first scenario, we showed the scroll down on page by pixel.
    • In the second scenario, we showed the scroll down of page until the visible of the element.
    • In the third scenario, we showed the scroll down of page at the bottom of the page.
    • In the fourth scenario, illustrated the horizontal scroll on the web page.
  • 相关阅读:
    Python常见的几种算法
    Python的八种数据类型
    网络协议
    Python基本知识
    Python简介
    Windows10 java环境配置
    linux 为动态分配的Virtualbox虚拟硬盘扩容
    ubuntu 18.04.1安装hadoop3.1.2
    linux 安装virtualbox5.2
    这是写给我自己看的!!
  • 原文地址:https://www.cnblogs.com/alicegu2009/p/9099018.html
Copyright © 2011-2022 走看看