Kuidas kerida lehte alla või üles Selenium Veebidraiver

⚡ Nutikas kokkuvõte

Lehe kerimine Selenium WebDriver kasutab JavascriptKäivitatav täitmisliides JavaSkripti kerimiskäsklused, kuna WebDriver manipuleerib otse DOM-iga. Neli praktilist stsenaariumi hõlmavad kerimist piksli kaupa, elemendini, lehe allossa ja horisontaalselt.

  • 📜 JavascriptTestamenditäitja: Jookseb JavaSkripti kerimiskäsud läbi Selenium Veebidraiver.
  • 🔢 Kerige piksli kaupa: window.scrollBy(x,y) liigutab lehte etteantud arvu pikslite võrra.
  • 🎯 Kerige elemendini: Funktsioon scrollIntoView() kerib seni, kuni sihtelement on täielikult nähtav.
  • ⬇️ Kerige allapoole: scrollTo funktsiooniga document.body.scrollHeight jõuab lehe lõppu.
  • ↔️ Horisontaalne kerimine: scrollIntoView liigub ka külgsuunas ekraanivälistele elementidele.
  • 🧭 Kerimisriba põhitõed: Kerimine kuvab elemente, mis laadivad alles siis, kui nad vaatesse sisenevad.

Kerige lehte alla või üles Selenium Veebidraiver

Kerige sisse Selenium

Kasutades kerimiseks Selenium, Mida saab kasutada JavaScriptExecutori liides, mis aitab käivitada JavaSkriptimeetodid läbi Selenium Veebidraiver

süntaksit:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • Skript – see on JavaSkript, mis tuleb käivitada.
  • Argumendid – need on skripti argumendid. See on valikuline.

Mis on kerimisriba?

Kerimisriba võimaldab teil liikuda ekraanil horisontaal- või vertikaalsuunas, kui praegune lehe kerimine ei mahu ekraani nähtavale alale. Seda kasutatakse akna üles-alla liigutamiseks.

Selenium Veebidraiver ei vaja toimingute tegemiseks kerimist, kuna see manipuleerib DOM-iga. Kuid teatud veebilehtedel muutuvad elemendid nähtavaks alles siis, kui kasutaja on nendeni kerinud. Sellistel juhtudel võib olla vajalik kerimine.

Kerimisriba on kahte tüüpi: Horisontaalne ja vertikaalne kerimisriba, nagu on näidatud alloleval ekraanipildil.

kerimisriba

kerimisriba

Selenium Skript leheküljel alla kerimiseks

Vaatame seleeni veebidraiveri abil veebilehe allakerimist nelja järgmise stsenaariumiga:

  • 1. stsenaarium: veebilehe pikslite kaupa alla kerimine.
  • 2. stsenaarium: veebilehel alla kerimine elemendi nähtavuse järgi.
  • 3. stsenaarium: veebilehe alla kerimiseks lehe allosas.
  • 4. stsenaarium: veebilehel horisontaalne kerimine.

1. stsenaarium: veebilehe pikslite kaupa alla kerimine.

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 DescriptioonÜlaltoodud koodis käivitame esmalt antud URL Chrome'i brauseris. Seejärel kerige lehte 1000 piksli võrra, kasutades executeScripti. Javascript meetod ScrollBy() kerib veebilehte kindla pikslite arvuni.

ScrollBy() meetodite süntaks on:

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

x-pikslid on arv x-teljel, see liigub vasakule, kui arv on positiivne ja see liigub paremale, kui arv on negatiivne. y-pikslit on arv y-teljel, see liigub alla, kui arv on positiivne ja see liigub üles, kui arv on negatiivne.

Näide:

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

Väljundi analüüs: Siin on ülaltoodud skripti käivitamise väljund.

Kerige veebilehte pikslite kaupa alla

2. stsenaarium: veebilehel alla kerimine elemendi nähtavuse järgi.

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 Descriptioon: Ülaltoodud koodis käivitame esmalt antud URL-i Chrome'i brauseris. Järgmisena kerige lehte, kuni mainitud element on praegusel lehel nähtav. Javascript meetod scrollIntoView() kerib lehte, kuni mainitud element on täisvaates:

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

„argumendid[0]” tähendab lehe esimest registrit, mis algab 0-st.

Kus "Element" on veebilehel paiknev lokaator.

Väljundi analüüs: Siin on ülaltoodud skripti käivitamise väljund.

 Kerige veebilehte elemendi nähtavuse järgi

3. stsenaarium: veebilehe alla kerimiseks lehe allosas.

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 Descriptioon: Ülaltoodud koodis käivitame esmalt antud URL-i Chrome'i brauseris. Järgmisena kerige lehe allossa. Javascript meetod scrollTo() kerige kuni lehe lõpuni .

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

"document.body.scrollHeight" tagastab keha, st veebilehe täieliku kõrguse.

Väljundi analüüs: Siin on ülaltoodud skripti käivitamise väljund.

Kerige veebilehte lehe allosas allapoole

4. stsenaarium: veebilehel horisontaalne kerimine

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 Descriptioon: Ülaltoodud koodis käivitame esmalt antud URL-i Chrome'i brauseris. Järgmisena kerige lehte horisontaalselt, kuni mainitud element on praegusel lehel nähtav. Javascript meetod scrollIntoView() kerib lehte, kuni mainitud element on täisvaates:

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

Väljundi analüüs: Siin on ülaltoodud skripti käivitamise väljund.

Horisontaalne kerimine veebilehel

Lisateave JavaScriptExecutor

KKK

Kasutage funktsiooniga window.scrollBy negatiivset piksliväärtust, näiteks js.executeScript koos funktsiooniga window.scrollBy(0,-1000). Negatiivne y-väärtus liigutab lehte ülespoole, positiivne väärtus aga kerib allapoole.

Jah. Elemendile saab saata Keys.PAGE_DOWN, Keys.END või nooleklahve või kasutada Actions klassi Selenium 4. JavascriptTestamenditäitja on endiselt kõige paindlikum valik.

Brauserid jäädvustavad ainult nähtava vaatevälja, seega skriptid kerivad lehte, jäädvustavad sektsioone ja liidavad need kokku. Kerimine käivitab enne ekraanipilti ka laiskalt laaditud pildid ja sisu.

Jah. Tehisintellekti assistendid loovad tavalistest juhistest scrollBy, scrollIntoView ja scrollTo koodijuppe ning selgitavad pikslite matemaatikat. RevVaadake lokaatoreid ja ootetingimusi enne nende käivitamist oma sviidis.

Tehisintellektil põhinevad tööriistad tuvastavad uue sisu laadimise peatumise, reguleerivad dünaamiliselt kerimissügavust ja ootavad elementide ilmumist nutikalt. See automatiseerib lõpmatu kerimisvoogude testimise ilma pikslite arvu kõvakodeerimiseta.

Funktsioon scrollBy liigutab lehte praegusest asukohast fikseeritud arvu pikslite võrra. scrollIntoView kerib, kuni konkreetne element on nähtav. Kasutage kauguse määramiseks scrollBy ja elementide sihtimiseks scrollIntoView.

Võta see postitus kokku järgmiselt: