Sådan ruller du ned eller op på siden Selenium Webdriver

Rul ind Selenium

For at rulle vha Selenium, Kan du bruge JavaScriptExecutor-grænseflade, der hjælper med at udføre JavaScript metoder igennem Selenium Webdriver

Syntaks:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • Script - Dette er JavaScript, der skal udføres.
  • Argumenter - Det er argumenterne til manuskriptet. Det er valgfrit.

Selenium Script til at rulle ned på siden

Lad os se rulle ned en webside ved hjælp af selen webdriver med følgende 4 scenarier:

  • Scenarie 1: For at rulle ned på websiden for pixel.
  • Scenarie 2: For at rulle ned på websiden efter elementets synlighed.
  • Scenario 3: For at rulle ned på websiden nederst på siden.
  • Scenarie 4: Vandret rulning på websiden.

Scenarie 1: For at rulle ned på websiden for pixel.

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("http://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 ovenstående kode starter vi først den givne URL i Chrome-browseren. Rul derefter siden 1000 pixels gennem executeScript. Javascript metode ScrollBy() ruller websiden til det specifikke antal pixels.

Syntaksen for ScrollBy() metoder er:

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

x-pixels er tallet på x-aksen, det flytter til venstre, hvis tallet er positivt, og det flyttes til højre, hvis tallet er negativt. y-pixels er tallet på y-aksen, det flytter ned, hvis tallet er positiv, og den flyttes til op, hvis tallet er negativt.

Eksempel:

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

Output analyse: Her er outputtet, når du udfører ovenstående script.

Rul ned på websiden med pixel

Scenarie 2: For at rulle ned på websiden efter elementets synlighed.

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("http://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 ovenstående kode starter vi først den givne url i Chrome-browseren. Dernæst scroller du på siden, indtil det nævnte element er synligt på den aktuelle side. Javascript metode scrollIntoView() ruller siden indtil det nævnte element er i fuld visning:

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

"argumenter[0]" betyder det første indeks på siden, der starter ved 0.

Hvor et " Element " er lokalisatoren på websiden.

Output analyse: Her er outputtet, når du udfører ovenstående script.

Rul ned på websiden efter elementets synlighed

Scenario 3: For at rulle ned på websiden 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("http://demo.guru99.com/test/guru99home/");

        //This will scroll the web page till end.		
        js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
    }
}

Script Description: I ovenstående kode starter vi først den givne url i Chrome-browseren. Rul derefter til bunden af ​​siden. Javascript metode scrollTo() scroll indtil slutningen af ​​siden.

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

"document.body.scrollHeight" returnerer den fulde højde af kroppen, dvs. websiden.

Output analyse: Her er outputtet, når du udfører ovenstående script.

Rul ned på websiden i bunden af ​​siden

Scenarie 4: Vandret rulning på websiden

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("http://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 ovenstående kode starter vi først den givne url i Chrome-browseren. Rul derefter siden vandret, indtil det nævnte element er synligt på den aktuelle side. Javascript metode scrollIntoView() ruller siden indtil det nævnte element er i fuld visning:

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

Output analyse: Her er outputtet, når du udfører ovenstående script.

Vandret rul på websiden

Lær mere om JavaScriptExecutor

Hvad er en rullebjælke?

En rullepanel er en lader dig flytte rundt på skærmen i vandret eller lodret retning, hvis den aktuelle siderulle ikke passer til det synlige område af skærmen. Det bruges til at flytte vinduet op og ned.

Selenium Webdriver kræver ikke scroll for at udføre handlinger, da det manipulerer DOM. Men på visse websider bliver elementer først synlige, når brugeren har scrollet til dem. I sådanne tilfælde kan det være nødvendigt at rulle.

Rullebjælken er af to typer: Vandret og lodret rullepanel som vist på skærmbilledet nedenfor.

rullebjælke

rullebjælke

Resumé

  • I ovenstående vejledning illustrerer vi rullen på websiden gennem forskellige scenarier.
  • I det første scenarie viste vi rullen ned på side for pixel.
  • I det andet scenarie viste vi rullen ned på siden, indtil elementet var synligt.
  • I det tredje scenarie viste vi rullen ned på siden nederst på siden.
  • I det fjerde scenarie, illustreret den vandrette rulle på websiden.