Omlaag of OMHOOG scrollen Pagina in Selenium Webstuurprogramma

⚡ Slimme samenvatting

Een pagina scrollen in Selenium WebDriver gebruikt de JavascriptExecutor-interface om uit te voeren JavaScript scroll-commando's, omdat WebDriver de DOM rechtstreeks manipuleert. Vier praktische scenario's behandelen scrollen per pixel, naar een element, naar de onderkant van de pagina en horizontaal.

  • 📜 JavascriptUitvoerder: Runs JavaScript scroll-opdrachten door Selenium Webstuurprogramma.
  • 🔢 Scrollen per pixel: window.scrollBy(x,y) verplaatst de pagina een vast aantal pixels.
  • 🎯 Scroll naar het element: scrollIntoView() scrollt totdat het doelelement volledig zichtbaar is.
  • ⬇️ Scroll naar beneden: scrollTo met document.body.scrollHeight bereikt het einde van de pagina.
  • ↔️ Horizontaal scrollen: scrollIntoView beweegt ook zijwaarts naar elementen buiten het scherm.
  • 🧭 Basisprincipes van de schuifbalk: Door te scrollen worden elementen zichtbaar die pas laden wanneer ze in beeld komen.

Scroll omlaag of omhoog op de pagina in Selenium webdriver

Scroll naar binnen Selenium

Om te scrollen met Selenium, Kunt u gebruik maken JavaScriptExecutor-interface die helpt bij het uitvoeren JavaScriptmethoden via Selenium Webstuurprogramma

Syntax:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • Script – Dit is het JavaScript dat uitgevoerd moet worden.
  • Argumenten – Het zijn de argumenten voor het script. Het is optioneel.

Wat is een schuifbalk?

Met een schuifbalk kunt u in horizontale of verticale richting door het scherm bewegen als het scrollen van de huidige pagina niet in het zichtbare gedeelte van het scherm past. Het wordt gebruikt om het raam op en neer te bewegen.

Selenium Webdriver vereist geen scroll om acties uit te voeren omdat het DOM manipuleert. Maar op bepaalde webpagina's worden elementen pas zichtbaar als de gebruiker ernaartoe heeft gescrolld. In dergelijke gevallen kan scrollen nodig zijn.

De schuifbalk bestaat uit twee typen: Horizontaal en verticaal schuifbalk zoals weergegeven in onderstaande schermafbeelding.

scrollbar

scrollbar

Selenium Script om naar beneden te scrollen op de pagina

Laten we eens kijken naar het scrollen van een webpagina met behulp van de Selenium Webdriver met de volgende 4 scenario's:

  • Scenario 1: Pixelsgewijs naar beneden scrollen op de webpagina.
  • Scenario 2: Om door de webpagina te scrollen op basis van de zichtbaarheid van het element.
  • Scenario 3: Om onderaan de webpagina naar beneden te scrollen.
  • Scenario 4: Horizontaal scrollen op de webpagina.

Scenario 1: Pixelsgewijs naar beneden scrollen op de webpagina.

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 DescriptionIn de bovenstaande code starten we eerst de gegeven URL in de Chrome-browser. Scroll vervolgens de pagina 1000 pixels naar beneden met behulp van executeScript. Javascript methode ScrollBy() scrollt de webpagina naar het specifieke aantal pixels.

De syntaxis van ScrollBy()-methoden is:

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

x-pixels is het getal op de x-as, het beweegt naar links als het getal positief is en het beweegt naar rechts als het getal negatief is. y-pixels is het getal op de y-as, het beweegt naar beneden als het getal is positief en het gaat naar boven als het getal negatief is.

Voorbeeld:

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

Outputanalyse: Hier is de uitvoer wanneer u het bovenstaande script uitvoert.

Scroll per pixel naar beneden op de webpagina

Scenario 2: Om door de webpagina te scrollen op basis van de zichtbaarheid van het 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("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: In de bovenstaande code lanceren we eerst de gegeven URL in de Chrome-browser. Blader vervolgens door de pagina totdat het genoemde element zichtbaar is op de huidige pagina. Javascript methode scrollIntoView() scrollt door de pagina totdat het genoemde element volledig zichtbaar is:

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

“argumenten[0]” betekent de eerste index van de pagina beginnend bij 0.

Waar een ‘Element’ de locator op de webpagina is.

Outputanalyse: Hier is de uitvoer wanneer u het bovenstaande script uitvoert.

 Scroll naar beneden op de webpagina volgens de zichtbaarheid van het element

Scenario 3: Om onderaan de webpagina naar beneden te scrollen.

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: In de bovenstaande code lanceren we eerst de gegeven URL in de Chrome-browser. Scroll vervolgens naar de onderkant van de pagina. Javascript methode scrollTo() scroll tot het einde van de pagina.

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

“document.body.scrollHeight” retourneert de volledige hoogte van de hoofdtekst, dwz webpagina.

Outputanalyse: Hier is de uitvoer wanneer u het bovenstaande script uitvoert.

Scroll naar beneden op de webpagina onderaan de pagina

Scenario 4: Horizontaal scrollen op de webpagina

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: In de bovenstaande code lanceren we eerst de gegeven URL in de Chrome-browser. Blader vervolgens horizontaal door de pagina totdat het genoemde element zichtbaar is op de huidige pagina. Javascript methode scrollIntoView() scrollt door de pagina totdat het genoemde element volledig zichtbaar is:

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

Outputanalyse: Hier is de uitvoer wanneer u het bovenstaande script uitvoert.

Horizontale scroll op de webpagina

Meer informatie over JavaScriptUitvoerder

Veelgestelde vragen

Gebruik een negatieve pixelwaarde met window.scrollBy, bijvoorbeeld js.executeScript met window.scrollBy(0,-1000). De negatieve y-waarde beweegt de pagina omhoog, in tegenstelling tot een positieve waarde die omlaag scrollt.

Ja. Je kunt Keys.PAGE_DOWN, Keys.END of de pijltjestoetsen naar een element sturen, of de Actions-klasse gebruiken in Selenium 4. JavascriptExecutor blijft de meest flexibele optie.

Browsers leggen alleen het zichtbare gedeelte van de pagina vast, dus scripts scrollen door de pagina, leggen gedeeltes vast en voegen deze samen. Door het scrollen worden ook afbeeldingen en inhoud die later worden geladen, geactiveerd voordat de screenshot wordt gemaakt.

Ja. AI-assistenten genereren scrollBy-, scrollIntoView- en scrollTo-fragmenten op basis van eenvoudige instructies en leggen de pixelberekeningen uit. RevBekijk de weergavelocaties en wachttijden voordat u ze in uw testomgeving uitvoert.

Door AI aangedreven tools detecteren wanneer nieuwe content niet meer laadt, passen de scrolldiepte dynamisch aan en wachten intelligent op elementen. Dit automatiseert het testen van feeds met oneindig scrollen zonder dat er hardgecodeerde pixelwaarden nodig zijn.

Met `scrollBy` verschuift de pagina een vast aantal pixels vanaf de huidige positie. Met `scrollIntoView` scrollt de pagina totdat een specifiek element zichtbaar is. Gebruik `scrollBy` voor de afstand en `scrollIntoView` voor het selecteren van elementen.

Vat dit bericht samen met: