Slik ruller du ned eller opp på siden Selenium Webdriver

Rull inn Selenium

For å bla ved hjelp av Selenium, Kan du bruke JavaScriptExecutor-grensesnitt som hjelper å utføre JavaSkriptmetoder gjennom Selenium Webdriver

Syntaks:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • Script - Dette er JavaSkript som må kjøres.
  • Argumenter – Det er argumentene til manuset. Det er valgfritt.

Selenium Skript for å rulle nedover siden

La oss se rulle nedover en nettside ved hjelp av selen webdriver med følgende 4 scenarier:

  • Scenario 1: For å rulle nedover nettsiden for piksel.
  • Scenario 2: For å rulle nedover nettsiden etter synligheten til elementet.
  • Scenario 3: For å bla nedover nettsiden nederst på siden.
  • Scenario 4: Horisontal rulling på nettsiden.

Scenario 1: For å rulle nedover nettsiden for 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 Description: I koden ovenfor starter vi først den gitte nettadressen i Chrome-nettleseren. Deretter ruller du siden med 1000 piksler gjennom executeScript. Javascript metode ScrollBy() ruller nettsiden til det spesifikke antallet piksler.

Syntaksen til ScrollBy()-metodene er:

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

x-piksler er tallet på x-aksen, det flyttes til venstre hvis tallet er positivt og det flyttes til høyre hvis tallet er negativt. y-piksler er tallet på y-aksen, det flyttes ned hvis tallet er positiv og den flyttes til opp hvis tallet er negativt.

Eksempel:

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

Utgangsanalyse: Her er utdataene når du kjører skriptet ovenfor.

Rull nedover nettsiden etter piksel

Scenario 2: For å rulle nedover nettsiden etter synligheten til elementet.

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: I koden ovenfor starter vi først den gitte nettadressen i Chrome-nettleseren. Deretter ruller du siden til det nevnte elementet er synlig på gjeldende side. Javascript metode scrollIntoView() ruller siden til det nevnte elementet er i full visning:

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

"argumenter[0]" betyr første indeks på siden som starter på 0.

Der et "element" er lokalisatoren på nettsiden.

Utgangsanalyse: Her er utdataene når du kjører skriptet ovenfor.

Rull nedover nettsiden etter synligheten til elementet

Scenario 3: For å bla nedover nettsiden nederst på siden.

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: I koden ovenfor starter vi først den gitte nettadressen i Chrome-nettleseren. Deretter bla til bunnen av siden. Javascript metode scrollTo() bla til slutten av siden.

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

"document.body.scrollHeight" returnerer hele høyden på kroppen, dvs. nettsiden.

Utgangsanalyse: Her er utdataene når du kjører skriptet ovenfor.

Rull nedover websiden nederst på siden

Scenario 4: Horisontal rulling på nettsiden

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: I koden ovenfor starter vi først den gitte nettadressen i Chrome-nettleseren. Deretter ruller du siden horisontalt til det nevnte elementet er synlig på gjeldende side. Javascript metode scrollIntoView() ruller siden til det nevnte elementet er i full visning:

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

Utgangsanalyse: Her er utdataene når du kjører skriptet ovenfor.

Horisontal rulling på nettsiden

Lær mer om JavaScriptExecutor

Hva er en rullefelt?

Et rullefelt lar deg flytte rundt på skjermen i horisontal eller vertikal retning hvis den gjeldende siderullingen ikke passer til det synlige området på skjermen. Den brukes til å flytte vinduet opp og ned.

Selenium Webdriver krever ikke rulling for å utføre handlinger da den manipulerer DOM. Men på enkelte nettsider blir elementer først synlige når brukeren har rullet til dem. I slike tilfeller kan det være nødvendig å rulle.

Rullefeltet er av to typer: Horisontal og vertikal rullefelt som vist i skjermbildet nedenfor.

scrollbar

scrollbar

Sammendrag

  • I opplæringen ovenfor illustrerer vi rullingen av nettsiden gjennom forskjellige scenarier.
  • I det første scenariet viste vi rullingen nedover side for piksel.
  • I det andre scenariet viste vi bla nedover på siden til elementet ble synlig.
  • I det tredje scenariet viste vi rullingen ned på siden nederst på siden.
  • I det fjerde scenariet, illustrert den horisontale rullen på nettsiden.