Slik ruller du ned eller opp på siden Selenium Webdriver

⚡ Smart oppsummering

Bla en side inn Selenium WebDriver bruker JavascriptUtførergrensesnitt for kjøring JavaSkript-rullekommandoer, fordi WebDriver manipulerer DOM-en direkte. Fire praktiske scenarier dekker rulling pikselvis, til et element, til bunnen av siden og horisontalt.

  • 📜 JavascriptEksekutor: Kjører JavaSkript-rullekommandoer gjennom Selenium WebDriver.
  • 🔢 Bla piksel for piksel: window.scrollBy(x,y) flytter siden et gitt antall piksler.
  • 🎯 Bla til elementet: scrollIntoView() ruller til målelementet er fullt synlig.
  • ⬇️ Bla ned til bunnen: scrollTo med document.body.scrollHeight når slutten av siden.
  • ↔️ Horisontal rulling: scrollIntoView beveger seg også sidelengs til elementer utenfor skjermen.
  • 🧭 Grunnleggende om rullefeltet: Rulling avslører elementer som bare lastes inn når de kommer inn i visningen.

Bla ned eller opp siden i Selenium webdriver

Rull inn Selenium

For å bla ved hjelp av Selenium, Kan du bruke JavaScriptExecutor-grensesnitt som hjelper å utføre JavaSkriptmetoder gjennom Selenium Webdriver

Syntaks:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • Script - Dette er JavaSkript som må kjøres.
  • Argumenter – Det er argumentene til manuset. Det er valgfritt.

Hva er en rullefelt?

Et rullefelt lar deg flytte rundt på skjermen i horisontal eller vertikal retning hvis den gjeldende siderullingen ikke passer til det synlige området på skjermen. Den brukes til å flytte vinduet opp og ned.

Selenium Webdriver krever ikke rulling for å utføre handlinger da den manipulerer DOM. Men på enkelte nettsider blir elementer først synlige når brukeren har rullet til dem. I slike tilfeller kan det være nødvendig å rulle.

Rullefeltet er av to typer: Horisontal og vertikal rullefelt som vist i skjermbildet nedenfor.

scrollbar

scrollbar

Selenium Skript for å rulle nedover siden

La oss se rulle nedover en nettside ved hjelp av selen webdriver med følgende 4 scenarier:

  • Scenario 1: For å rulle nedover nettsiden for piksel.
  • Scenario 2: For å rulle nedover nettsiden etter synligheten til elementet.
  • Scenario 3: For å bla nedover nettsiden nederst på siden.
  • Scenario 4: Horisontal rulling på nettsiden.

Scenario 1: For å rulle nedover nettsiden for piksel.

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 DescriptionI koden ovenfor starter vi først den gitte URL i Chrome-nettleseren. Deretter blar du nedover siden med 1000 piksler gjennom executeScript. Javascript metode ScrollBy() ruller nettsiden til det spesifikke antallet piksler.

Syntaksen til ScrollBy()-metodene er:

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

x-piksler er tallet på x-aksen, det flyttes til venstre hvis tallet er positivt og det flyttes til høyre hvis tallet er negativt. y-piksler er tallet på y-aksen, det flyttes ned hvis tallet er positiv og den flyttes til opp hvis tallet er negativt.

Eksempel:

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

Utgangsanalyse: Her er utdataene når du kjører skriptet ovenfor.

Rull nedover nettsiden etter piksel

Scenario 2: For å rulle nedover nettsiden etter synligheten til elementet.

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 Description: I koden ovenfor starter vi først den gitte nettadressen i Chrome-nettleseren. Deretter ruller du siden til det nevnte elementet er synlig på gjeldende side. Javascript metode scrollIntoView() ruller siden til det nevnte elementet er i full visning:

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

"argumenter[0]" betyr første indeks på siden som starter på 0.

Der et "element" er lokalisatoren på nettsiden.

Utgangsanalyse: Her er utdataene når du kjører skriptet ovenfor.

 Rull nedover nettsiden etter synligheten til elementet

Scenario 3: For å bla nedover nettsiden nederst på siden.

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 Description: I koden ovenfor starter vi først den gitte nettadressen i Chrome-nettleseren. Deretter bla til bunnen av siden. Javascript metode scrollTo() bla til slutten av siden.

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

"document.body.scrollHeight" returnerer hele høyden på kroppen, dvs. nettsiden.

Utgangsanalyse: Her er utdataene når du kjører skriptet ovenfor.

Rull nedover websiden nederst på siden

Scenario 4: Horisontal rulling på nettsiden

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 Description: I koden ovenfor starter vi først den gitte nettadressen i Chrome-nettleseren. Deretter ruller du siden horisontalt til det nevnte elementet er synlig på gjeldende side. Javascript metode scrollIntoView() ruller siden til det nevnte elementet er i full visning:

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

Utgangsanalyse: Her er utdataene når du kjører skriptet ovenfor.

Horisontal rulling på nettsiden

Lær mer om JavaScriptExecutor

Spørsmål og svar

Bruk en negativ pikselverdi med window.scrollBy, for eksempel js.executeScript med window.scrollBy(0,-1000). Den negative y-verdien flytter siden oppover, i motsetning til en positiv verdi som ruller nedover.

Ja. Du kan sende Keys.PAGE_DOWN, Keys.END eller piltaster til et element, eller bruke Actions-klassen i Selenium 4. JavascriptEksekutor er fortsatt det mest fleksible alternativet.

Nettlesere fanger bare opp det synlige visningsområdet, så skript blar gjennom siden, fanger opp seksjoner og setter dem sammen. Rulling utløser også latterlig lastede bilder og innhold før skjermbildet.

Ja. AI-assistenter produserer scrollBy-, scrollIntoView- og scrollTo-utdrag fra vanlige instruksjoner, og forklarer pikselmatematikken. RevSe lokatorer og venteforhold før du kjører dem i suiten din.

AI-drevne verktøy oppdager når nytt innhold slutter å lastes inn, justerer rulledybden dynamisk og venter intelligent på elementer. Dette automatiserer testing av uendelige rullefeeder uten fastkodet pikselantall.

scrollBy flytter siden et fast antall piksler fra gjeldende posisjon. scrollIntoView ruller til et bestemt element er synlig. Bruk scrollBy for avstand og scrollIntoView for å målrette elementer.

Oppsummer dette innlegget med: