Så här rullar du ner eller upp på sidan Selenium Webdriver

Scrolla in Selenium

För att bläddra med Selenium, Kan du använda JavaScriptExecutor-gränssnitt som hjälper till att köra JavaSkriptmetoder igenom Selenium Webdriver

Syntax:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • Script – Det här är JavaSkript som måste köras.
  • Argument – ​​Det är argumenten till manuset. Det är valfritt.

Selenium Skript för att scrolla ner på sidan

Låt oss se rulla ner en webbsida med selenwebbdrivrutinen med följande 4 scenarier:

  • Scenario 1: För att rulla ner webbsidan för pixel.
  • Scenario 2: För att rulla nedåt på webbsidan efter elementets synlighet.
  • Scenario 3: För att rulla ner webbsidan längst ner på sidan.
  • Scenario 4: Horisontell rullning på webbsidan.

Scenario 1: För att rulla ner webbsidan för 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("https://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: I koden ovan startar vi först den givna webbadressen i webbläsaren Chrome. Bläddra sedan sidan med 1000 pixlar genom executeScript. Javascript metod ScrollBy() rullar webbsidan till det specifika antalet pixlar.

Syntaxen för ScrollBy() metoder är:

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

x-pixlar är talet på x-axeln, det flyttas till vänster om talet är positivt och det flyttas till höger om talet är negativt. y-pixlar är talet på y-axeln, det flyttas nedåt om talet är positiv och den flyttas till upp om siffran är negativ.

Exempelvis:

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

Utgångsanalys: Här är utdata när du kör ovanstående skript.

Rulla ner webbsidan per pixel

Scenario 2: För att rulla nedåt på webbsidan efter elementets synlighet.

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("https://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 DescriptJon: I koden ovan startar vi först den givna webbadressen i webbläsaren Chrome. Bläddra sedan på sidan tills det nämnda elementet är synligt på den aktuella sidan. Javascript metod scrollIntoView() rullar sidan tills det nämnda elementet är i full vy:

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

"argument[0]" betyder första index på sidan som börjar på 0.

Där ett "element" är lokaliseraren på webbsidan.

Utgångsanalys: Här är utdata när du kör ovanstående skript.

Rulla ner på webbsidan efter elementets synlighet

Scenario 3: För att rulla ner webbsidan längst ner på sidan.

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("https://demo.guru99.com/test/guru99home/");

        //This will scroll the web page till end.		
        js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
    }
}

Script Descriptjon: I koden ovan startar vi först den givna webbadressen i webbläsaren Chrome. Bläddra sedan till botten av sidan. Javascript metod scrollTo() scrolla till slutet av sidan .

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

"document.body.scrollHeight" returnerar hela höjden på kroppen, dvs webbsidan.

Utgångsanalys: Här är utdata när du kör ovanstående skript.

Rulla ner på webbsidan längst ner på sidan

Scenario 4: Horisontell rullning på webbsidan

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("https://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 Descriptjon: I koden ovan startar vi först den givna webbadressen i webbläsaren Chrome. Därefter rullar du sidan horisontellt tills det nämnda elementet är synligt på den aktuella sidan. Javascript metod scrollIntoView() rullar sidan tills det nämnda elementet är i full vy:

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

Utgångsanalys: Här är utdata när du kör ovanstående skript.

Horisontell rullning på webbsidan

Läs mer om JavaScriptExecutor

Vad är en rullningslist?

En rullningslist låter dig flytta runt skärmen i horisontell eller vertikal riktning om den aktuella sidrullningen inte passar det synliga området på skärmen. Den används för att flytta fönstret upp och ner.

Selenium Webdriver kräver inte scroll för att utföra åtgärder eftersom den manipulerar DOM. Men på vissa webbsidor blir element endast synliga när användaren har scrollat ​​till dem. I sådana fall kan rullning vara nödvändig.

Rullningslisten är av två typer: Horisontell och vertikal rullningslisten som visas i skärmdumpen nedan.

rullningslist

rullningslist

Sammanfattning

  • I handledningen ovan illustrerar vi webbsidans rullning genom olika scenarier.
  • I det första scenariot visade vi rullningen nedåt sida för pixel.
  • I det andra scenariot visade vi rullningen nedåt på sidan tills elementet var synligt.
  • I det tredje scenariot visade vi rullningen nedåt på sidan längst ner på sidan.
  • I det fjärde scenariot illustrerade den horisontella rullningen på webbsidan.