Cum să derulați în jos sau în sus în pagina Selenium Webdriver

⚡ Rezumat inteligent

Derularea unei pagini în Selenium WebDriver folosește JavascriptInterfața executorului pentru rulare JavaComenzi de derulare în script, deoarece WebDriver manipulează direct DOM-ul. Patru scenarii practice acoperă derularea cu pixel, la un element, la sfârșitul paginii și pe orizontală.

  • 📜 JavascriptExecutor testamentar: Rulează JavaComenzi de derulare a scriptului Selenium WebDriver.
  • 🔢 Derulare cu pixel: window.scrollBy(x,y) mută pagina cu un număr setat de pixeli.
  • 🎯 Derulați la element: scrollIntoView() derulează până când elementul țintă este complet vizibil.
  • ⬇️ Derulați până jos: scrollTo cu document.body.scrollHeight ajunge la sfârșitul paginii.
  • ↔️ Defilare orizontală: scrollIntoView se mișcă și lateral către elementele din afara ecranului.
  • 🧭 Noțiuni de bază despre bara de derulare: Derularea dezvăluie elemente care se încarcă doar atunci când intră în vizualizare.

Derulați pagina în jos sau în sus Selenium webdriver

Derulează Selenium

Pentru a derula folosind Selenium, Aveți posibilitatea să utilizați JavaInterfață ScriptExecutor care ajută la execuție JavaMetode de script prin Selenium Webdriver

Sintaxă:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • Script – Acesta este JavaScript care trebuie executat.
  • Argumente – Sunt argumentele pentru scenariu. Este optional.

Ce este o bară de derulare?

O bară de defilare vă permite să vă deplasați în jurul ecranului în direcție orizontală sau verticală dacă derularea paginii curente nu se potrivește zonei vizibile a ecranului. Este folosit pentru a muta fereastra în sus și în jos.

Selenium Webdriver nu necesită derulare pentru a efectua acțiuni, deoarece manipulează DOM. Însă în anumite pagini web, elementele devin vizibile doar după ce utilizatorul a derulat la ele. În astfel de cazuri, poate fi necesară derularea.

Bara de defilare este de două tipuri: Orizontală și vertical bara de derulare, așa cum se arată în captura de ecran de mai jos.

scrollbar

scrollbar

Selenium Script pentru a derula în jos în pagină

Să vedem derularea în jos a unei pagini web utilizând driverul web selenium cu următoarele 4 scenarii:

  • Scenariul 1: Pentru a derula în jos pagina web cu pixel.
  • Scenariul 2: Pentru a derula în jos pagina web în funcție de vizibilitatea elementului.
  • Scenariul 3: Pentru a derula în jos pagina web din partea de jos a paginii.
  • Scenariul 4: Defilare orizontală pe pagina web.

Scenariul 1: Pentru a derula în jos pagina web cu pixel.

Selenium Scenariu

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

Scenariu DescriptionÎn codul de mai sus, lansăm mai întâi codul dat URL în browserul Chrome. Apoi, derulați pagina cu 1000 de pixeli prin executeScript. Javascript metoda ScrollBy() derulează pagina web la numărul specific de pixeli.

Sintaxa metodelor ScrollBy() este:

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

x-pixeli este numărul de pe axa x, se deplasează la stânga dacă numărul este pozitiv și se deplasează la dreapta dacă numărul este negativ. y-pixels este numărul de pe axa y, se deplasează în jos dacă numărul este pozitiv și se mută în sus dacă numărul este negativ.

Exemplu:

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

Analiza rezultatelor: Iată rezultatul când executați scriptul de mai sus.

Derulați în jos pagina web după pixel

Scenariul 2: Pentru a derula în jos pagina web în funcție de vizibilitatea elementului.

Selenium Scenariu

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

Scenariu Description: În codul de mai sus, lansăm mai întâi adresa URL dată în browserul Chrome. Apoi, derulați pagina până când elementul menționat este vizibil pe pagina curentă. Javascript metoda scrollIntoView() derulează pagina până când elementul menționat este în vizualizare completă:

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

„argumente[0]” înseamnă primul index al paginii care începe la 0.

Unde un „Element” este localizatorul de pe pagina web.

Analiza rezultatelor: Iată rezultatul când executați scriptul de mai sus.

 Derulați în jos pagina web după vizibilitatea elementului

Scenariul 3: Pentru a derula în jos pagina web din partea de jos a paginii.

Selenium Scenariu

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

Scenariu Description: În codul de mai sus, lansăm mai întâi adresa URL dată în browserul Chrome. Apoi, derulați până în partea de jos a paginii. Javascript metoda scrollTo() derulează până la sfârșitul paginii.

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

„document.body.scrollHeight” returnează înălțimea completă a corpului, adică pagina web.

Analiza rezultatelor: Iată rezultatul când executați scriptul de mai sus.

Derulați în jos pagina web din partea de jos a paginii

Scenariul 4: Defilare orizontală pe pagina web

Selenium Scenariu

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

Scenariu Description: În codul de mai sus, lansăm mai întâi adresa URL dată în browserul Chrome. Apoi, derulați pagina pe orizontală până când elementul menționat este vizibil pe pagina curentă. Javascript metoda scrollIntoView() derulează pagina până când elementul menționat este în vizualizare completă:

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

Analiza rezultatelor: Iată rezultatul când executați scriptul de mai sus.

Defilare orizontală pe pagina web

Aflați mai multe despre JavaScriptExecutor

Întrebări frecvente

Folosește o valoare negativă a pixelului cu window.scrollBy, de exemplu js.executeScript cu window.scrollBy(0,-1000). Valoarea negativă a lui y mută pagina în sus, opusă unei valori pozitive care derulează în jos.

Da. Puteți trimite Keys.PAGE_DOWN, Keys.END sau taste săgeată către un element sau puteți utiliza clasa Actions în Selenium 4. JavascriptExecutorul rămâne opțiunea cea mai flexibilă.

Browserele capturează doar fereastra de vizualizare vizibilă, așa că scripturile derulează prin pagină, capturează secțiuni și le îmbină. Derularea declanșează, de asemenea, încărcarea lentă a imaginilor și a conținutului înainte de captura de ecran.

Da. Asistenții inteligenți artificiali produc fragmente de instrucțiuni scrollBy, scrollIntoView și scrollTo din instrucțiuni simple și explică matematica pixelilor. RevVizualizați locatoarele și condițiile de așteptare înainte de a le rula în suita dvs.

Instrumentele bazate pe inteligență artificială detectează momentul în care se oprește încărcarea conținutului nou, ajustează dinamic adâncimea de derulare și așteaptă inteligent elementele. Acest lucru automatizează testarea fluxurilor cu derulare infinită fără număr de pixeli codificat fix.

`scrollBy` mută pagina cu un număr fix de pixeli față de poziția curentă. `scrollIntoView` derulează până când un anumit element devine vizibil. Se folosește `scrollBy` pentru distanță și `scrollIntoView` pentru direcționarea elementelor.

Rezumați această postare cu: