Kako pomicati stranicu prema dolje ili prema gore Selenium Webdriver

⚡ Pametni sažetak

Pomicanje stranice unutra Selenium WebDriver koristi JavascriptIzvršno sučelje za pokretanje JavaNaredbe za pomicanje skripte, jer WebDriver izravno manipulira DOM-om. Četiri praktična scenarija pokrivaju pomicanje po pikselu, do elementa, do dna stranice i horizontalno.

  • 📜 JavascriptIzvršitelj: Izvodi JavaNaredbe za pomicanje skripte Selenium WebDriver.
  • 🔢 Pomicanje po pikselu: window.scrollBy(x,y) pomiče stranicu za zadani broj piksela.
  • 🎯 Pomakni se do elementa: scrollIntoView() pomiče se dok ciljni element ne postane potpuno vidljiv.
  • ⬇️ Pomaknite se do dna: scrollTo s document.body.scrollHeight doseže kraj stranice.
  • ↔️ Horizontalno pomicanje: scrollIntoView se također pomiče bočno na elemente izvan zaslona.
  • 🧭 Osnove trake za pomicanje: Pomicanjem se otkrivaju elementi koji se učitavaju samo kada uđu u prikaz.

Pomaknite se prema dolje ili gore po stranici Selenium webdriver

Pomaknite se Selenium

Za pomicanje pomoću Selenium, Možete koristiti JavaScriptExecutor sučelje koje pomaže u izvršenju JavaMetode skripte kroz Selenium Webdriver

Sintaksa:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • Skripta – Ovo je JavaSkripta koja se treba izvršiti.
  • Argumenti – To su argumenti za scenarij. Nije obavezno.

Što je traka za pomicanje?

Traka za pomicanje omogućuje vam kretanje po zaslonu u vodoravnom ili okomitom smjeru ako pomicanje trenutne stranice ne stane u vidljivo područje zaslona. Koristi se za pomicanje prozora gore-dolje.

Selenium Webdriver ne zahtijeva pomicanje za izvođenje radnji jer manipulira DOM-om. Ali na određenim web-stranicama elementi postaju vidljivi tek nakon što se korisnik pomakne do njih. U takvim slučajevima može biti potrebno pomicanje.

Traka za pomicanje je dvije vrste: Vodoravan i vertikalna traku za pomicanje kao što je prikazano na slici ispod.

pomicanje

pomicanje

Selenium Skripta za pomicanje stranice prema dolje

Pogledajmo pomicanje web stranice prema dolje pomoću selenium webdrivera sa sljedeća 4 scenarija:

  • Scenarij 1: Za pomicanje web stranice prema dolje po piksel.
  • Scenarij 2: Pomicanje web-stranice prema dolje prema vidljivosti elementa.
  • Scenarij 3: Za pomicanje web stranice prema dolje na dnu stranice.
  • Scenarij 4: Horizontalno pomicanje na web stranici.

Scenarij 1: Za pomicanje web stranice prema dolje po 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 DescriptionU gornjem kodu prvo pokrećemo zadano URL u pregledniku Chrome. Zatim pomaknite stranicu za 1000 piksela pomoću executeScript. Javascript metoda ScrollBy() pomiče web stranicu do određenog broja piksela.

Sintaksa metoda ScrollBy() je:

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

x-pikseli su broj na x-osi, pomiču se ulijevo ako je broj pozitivan i pomiču se udesno ako je broj negativan. y-pikseli su broj na y-osi, pomiču se prema dolje ako je broj pozitivan i pomiče se prema gore ako je broj negativan.

Primjer:

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

Analiza izlaza: Ovo je rezultat kada izvršite gornju skriptu.

Pomičite web-stranicu prema dolje prema pikselu

Scenarij 2: Pomicanje web-stranice prema dolje prema vidljivosti elementa.

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: U gornjem kodu prvo pokrećemo dati url u pregledniku Chrome. Zatim pomičite stranicu sve dok spomenuti element ne bude vidljiv na trenutnoj stranici. Javascript metoda scrollIntoView() pomiče stranicu dok navedeni element ne bude u punom prikazu:

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

“argumenti[0]” znači prvi indeks stranice koji počinje s 0.

Gdje je "Element" lokator na web stranici.

Analiza izlaza: Ovo je rezultat kada izvršite gornju skriptu.

 Pomaknite se web-stranicom prema dolje prema vidljivosti elementa

Scenarij 3: Za pomicanje web stranice prema dolje na dnu stranice.

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: U gornjem kodu prvo pokrećemo dati url u pregledniku Chrome. Zatim se pomaknite do dna stranice. Javascript metoda scrollTo() pomaknite se do kraja stranice.

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

“document.body.scrollHeight” vraća kompletnu visinu tijela tj. web stranice.

Analiza izlaza: Ovo je rezultat kada izvršite gornju skriptu.

Pomaknite se prema dolje na web stranici na dnu stranice

Scenarij 4: Horizontalno pomicanje na web stranici

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: U gornjem kodu prvo pokrećemo dati url u pregledniku Chrome. Zatim pomičite stranicu vodoravno dok navedeni element ne bude vidljiv na trenutnoj stranici. Javascript metoda scrollIntoView() pomiče stranicu dok navedeni element ne bude u punom prikazu:

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

Analiza izlaza: Ovo je rezultat kada izvršite gornju skriptu.

Horizontalno pomicanje na web stranici

Saznajte više o JavaScriptExecutor

Pitanja i odgovori

Koristite negativnu vrijednost piksela s window.scrollBy, na primjer js.executeScript s window.scrollBy(0,-1000). Negativna y-vrijednost pomiče stranicu prema gore, suprotno od pozitivne vrijednosti koja pomiče stranicu prema dolje.

Da. Elementu možete poslati tipke Keys.PAGE_DOWN, Keys.END ili tipke sa strelicama ili koristiti klasu Actions u Selenium 4. JavascriptIzvršitelj ostaje najfleksibilnija opcija.

Preglednici bilježe samo vidljivi prikaz, pa se skripte pomiču kroz stranicu, bilježe dijelove i spajaju ih. Pomicanje također pokreće slike i sadržaj koji se učitavaju s postupnim pomicanjem prije snimke zaslona.

Da. AI asistenti iz običnih instrukcija izrađuju isječke scrollBy, scrollIntoView i scrollTo te objašnjavaju matematiku piksela. Revpregledajte lokatore i uvjete čekanja prije nego što ih pokrenete u svom apartmanu.

Alati temeljeni na umjetnoj inteligenciji otkrivaju kada se novi sadržaj prestane učitavati, dinamički prilagođavaju dubinu pomicanja i inteligentno čekaju elemente. To automatizira testiranje feedova s ​​beskonačnim pomicanjem bez ugrađenog broja piksela.

scrollBy pomiče stranicu fiksni broj piksela od trenutne pozicije. scrollIntoView pomiče stranicu dok određeni element ne postane vidljiv. Koristite scrollBy za udaljenost i scrollIntoView za ciljanje elemenata.

Sažmite ovu objavu uz: