Kuinka vierittää sivua alas tai ylös Selenium Web-ohjain

⚡ Älykäs yhteenveto

Sivun vierittäminen Selenium WebDriver käyttää JavascriptSuoritettava suoritusliittymä JavaSkriptien vierityskomennot, koska WebDriver manipuloi DOM:ia suoraan. Neljä käytännön skenaariota kattavat vierityksen pikseli kerrallaan, elementtiin, sivun alareunaan ja vaakasuunnassa.

  • 📜 JavascriptToteuttaja: Toimii JavaSkriptin vierityskomennot läpi Selenium WebDriver.
  • 🔢 Vieritä pikseli kerrallaan: window.scrollBy(x,y) siirtää sivua asetetun pikselimäärän verran.
  • 🎯 Vieritä elementtiin: scrollIntoView() vierittää, kunnes kohdeelementti on kokonaan näkyvissä.
  • ⬇️ Vieritä alas: scrollTo-funktio document.body.scrollHeight-metodilla saavuttaa sivun lopun.
  • ↔️ Vaakasuora vieritys: scrollIntoView siirtyy myös sivusuunnassa näytön ulkopuolisiin elementteihin.
  • 🧭 Vierityspalkin perusteet: Vieritys näyttää elementit, jotka latautuvat vasta, kun ne tulevat näkyviin.

Vieritä sivua alas tai ylös Selenium web-ajuri

Selaa sisään Selenium

Voit vierittää käyttämällä Selenium, Voit käyttää JavaScriptExecutor-käyttöliittymä, joka auttaa suorittamaan JavaKäsikirjoitusmenetelmät läpi Selenium Web-ohjain

Syntaksi:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • Käsikirjoitus – Tämä on JavaSuoritettava komentosarja.
  • Argumentit – Ne ovat käsikirjoituksen argumentit. Se on valinnainen.

Mikä on vierityspalkki?

Vierityspalkin avulla voit liikkua näytöllä vaaka- tai pystysuunnassa, jos nykyinen sivun vieritys ei mahdu näytön näkyvälle alueelle. Sitä käytetään liikuttamaan ikkunaa ylös ja alas.

Selenium Webdriver ei vaadi vieritystä toimintojen suorittamiseen, koska se käsittelee DOM:ia. Mutta tietyillä verkkosivuilla elementit tulevat näkyviin vasta, kun käyttäjä on vierittänyt niitä. Tällaisissa tapauksissa vieritys voi olla tarpeen.

Vierityspalkki on kahden tyyppinen: Vaakasuora ja pystysuora vierityspalkki alla olevan kuvakaappauksen mukaisesti.

scrollbar

scrollbar

Selenium Script vierittääksesi sivua alaspäin

Katsotaanpa Web-sivun vierittämistä alaspäin seleeni-webdriverillä seuraavilla 4 skenaariolla:

  • Skenaario 1: Web-sivun vierittäminen alaspäin pikseliltä.
  • Skenaario 2: Web-sivun vierittäminen alaspäin elementin näkyvyyden mukaan.
  • Skenaario 3: Voit vierittää verkkosivua alaspäin sivun alareunassa.
  • Skenaario 4: Vaakasuuntainen vieritys verkkosivulla.

Skenaario 1: Web-sivun vierittäminen alaspäin pikseliltä.

Selenium Käsikirjoitus

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)");
    }
}

Käsikirjoitus DescriptioniYllä olevassa koodissa käynnistämme ensin annetun URL Chrome-selaimessa. Seuraavaksi vieritä sivua 1000 pikseliä executeScriptin avulla. Javascript metodi ScrollBy() vierittää verkkosivua tiettyyn pikselien määrään.

ScrollBy()-menetelmien syntaksi on:

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

x-pikseliä on luku x-akselilla, se liikkuu vasemmalle, jos luku on positiivinen ja se liikkuu oikealle, jos luku on negatiivinen .y-pikseliä on luku y-akselilla, se liikkuu alas, jos luku on positiivinen ja se siirtyy ylöspäin, jos luku on negatiivinen.

Esimerkiksi:

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

Tulosanalyysi: Tässä on tulos, kun suoritat yllä olevan skriptin.

Vieritä verkkosivua alaspäin pikselin mukaan

Skenaario 2: Web-sivun vierittäminen alaspäin elementin näkyvyyden mukaan.

Selenium Käsikirjoitus

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);
    }
}

Käsikirjoitus Descriptioni: Yllä olevassa koodissa käynnistämme ensin annetun URL-osoitteen Chrome-selaimessa. Vieritä seuraavaksi sivua, kunnes mainittu elementti näkyy nykyisellä sivulla. Javascript metodi scrollIntoView() vierittää sivua, kunnes mainittu elementti on täysissä näkyvissä:

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

"argumentit[0]" tarkoittaa sivun ensimmäistä hakemistoa, joka alkaa 0:sta.

Missä "Elementti" on paikannus verkkosivulla.

Tulosanalyysi: Tässä on tulos, kun suoritat yllä olevan skriptin.

 Vieritä verkkosivua alaspäin elementin näkyvyyden mukaan

Skenaario 3: Voit vierittää verkkosivua alaspäin sivun alareunassa.

Selenium Käsikirjoitus

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)");
    }
}

Käsikirjoitus Descriptioni: Yllä olevassa koodissa käynnistämme ensin annetun URL-osoitteen Chrome-selaimessa. Vieritä seuraavaksi sivun alaosaan. Javascript metodi scrollTo() vieritä sivun loppuun asti .

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

"document.body.scrollHeight" palauttaa rungon eli verkkosivun koko korkeuden.

Tulosanalyysi: Tässä on tulos, kun suoritat yllä olevan skriptin.

Vieritä Web-sivua alas sivun alareunassa

Skenaario 4: Vaakasuuntainen vieritys verkkosivulla

Selenium Käsikirjoitus

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);
    }
}

Käsikirjoitus Descriptioni: Yllä olevassa koodissa käynnistämme ensin annetun URL-osoitteen Chrome-selaimessa. Vieritä seuraavaksi sivua vaakasuunnassa, kunnes mainittu elementti näkyy nykyisellä sivulla. Javascript metodi scrollIntoView() vierittää sivua, kunnes mainittu elementti on täysissä näkyvissä:

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

Tulosanalyysi: Tässä on tulos, kun suoritat yllä olevan skriptin.

Vaakasuora vieritys Web-sivulla

Lisätietoja JavaScriptExecutor

UKK

Käytä negatiivista pikseliarvoa window.scrollBy-metodin kanssa, esimerkiksi js.executeScript ja window.scrollBy(0,-1000). Negatiivinen y-arvo siirtää sivua ylöspäin, vastakkaiseen suuntaan kuin positiivinen arvo, joka vierittää sivua alaspäin.

Kyllä. Voit lähettää Keys.PAGE_DOWN- tai Keys.END-muuttujat tai nuolinäppäimiä elementtiin tai käyttää Actions-luokkaa Selenium 4. JavascriptToimeenpanija on edelleen joustavin vaihtoehto.

Selaimet tallentavat vain näkyvän näkymän, joten skriptit vierittävät sivua, tallentavat osioita ja yhdistävät ne. Vieritys laukaisee myös laiskasti latautuvien kuvien ja sisällön ennen kuvakaappausta.

Kyllä. Tekoälyavustajat tuottavat yksinkertaisista ohjeista scrollBy-, scrollIntoView- ja scrollTo-pätkiä ja selittävät pikselilaskennan. RevTarkista paikantimet ja odotusolosuhteet ennen niiden suorittamista sviitissäsi.

Tekoälypohjaiset työkalut havaitsevat, milloin uuden sisällön lataus pysähtyy, säätävät vierityssyvyyttä dynaamisesti ja odottavat älykkäästi elementtejä. Tämä automatisoi äärettömän vierityksen syötteiden testauksen ilman kiinteästi koodattuja pikselimääriä.

scrollBy siirtää sivua kiinteän määrän pikseleitä nykyisestä sijainnista. scrollIntoView vierittää, kunnes tietty elementti on näkyvissä. Käytä scrollBy-funktiota etäisyyden määrittämiseen ja scrollIntoView-funktiota elementtien kohdentamiseen.

Tiivistä tämä viesti seuraavasti: