Jak przewijać stronę w dół lub w górę Selenium Sterownik internetowy

Przewiń Selenium

Aby przewijać za pomocą Selenium, Można użyć JavaInterfejs ScriptExecutor, który pomaga w wykonywaniu JavaMetody skryptowe przez Selenium Sterownik internetowy

Składnia:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • Scenariusz – to jest JavaSkrypt, który należy wykonać.
  • Argumenty – są to argumenty skryptu. To opcjonalne.

Selenium Skrypt przewijający stronę w dół

Zobaczmy, jak przewijać stronę internetową w dół za pomocą sterownika Selenium WebDriver w następujących 4 scenariuszach:

  • Scenariusz 1: Przewijanie strony internetowej po pikselach.
  • Scenariusz 2: Aby przewinąć stronę internetową w dół po widoczności elementu.
  • Scenariusz 3: Aby przewinąć stronę internetową na dole strony.
  • Scenariusz 4: Przewijanie poziome strony internetowej.

Scenariusz 1: Przewijanie strony internetowej po pikselach.

Selenium Scenariusz

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

Scenariusz Descriptjon: W powyższym kodzie najpierw uruchamiamy podany adres URL w przeglądarce Chrome. Następnie przewiń stronę o 1000 pikseli za pomocą skryptu wykonawczego. Javascript metoda ScrollBy() przewija stronę internetową do określonej liczby pikseli.

Składnia metod ScrollBy() jest następująca:

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

x-piksele to liczba na osi x, przesuwa się w lewo, jeśli liczba jest dodatnia i przesuwa się w prawo, jeśli liczba jest ujemna. y-piksele to liczba na osi y, przesuwa się w dół, jeśli liczba jest dodatnia i przesuwa się w górę, jeśli liczba jest ujemna.

Przykład:

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

Analiza wyników: Oto wynik wykonania powyższego skryptu.

Przewiń stronę internetową według pikseli

Scenariusz 2: Aby przewinąć stronę internetową w dół po widoczności elementu.

Selenium Scenariusz

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

Scenariusz Descriptjon: W powyższym kodzie najpierw uruchamiamy podany adres URL w przeglądarce Chrome. Następnie przewiń stronę, aż wspomniany element będzie widoczny na bieżącej stronie. Javascript metoda scrollIntoView() przewija stronę, aż wspomniany element będzie w pełnym widoku:

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

„argumenty [0]” oznaczają pierwszy indeks strony zaczynający się od 0.

Gdzie „Element” jest lokalizatorem na stronie internetowej.

Analiza wyników: Oto wynik wykonania powyższego skryptu.

Przewiń stronę internetową według widoczności elementu

Scenariusz 3: Aby przewinąć stronę internetową na dole strony.

Selenium Scenariusz

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

Scenariusz Descriptjon: W powyższym kodzie najpierw uruchamiamy podany adres URL w przeglądarce Chrome. Następnie przewiń do dołu strony. Javascript metoda scrollTo() przewiń do końca strony.

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

„document.body.scrollHeight” zwraca pełną wysokość treści, czyli strony internetowej.

Analiza wyników: Oto wynik wykonania powyższego skryptu.

Przewiń stronę internetową na dole strony

Scenariusz 4: Przewijanie poziome strony internetowej

Selenium Scenariusz

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

Scenariusz Descriptjon: W powyższym kodzie najpierw uruchamiamy podany adres URL w przeglądarce Chrome. Następnie przewiń stronę w poziomie, aż wspomniany element będzie widoczny na bieżącej stronie. Javascript metoda scrollIntoView() przewija stronę, aż wspomniany element będzie w pełnym widoku:

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

Analiza wyników: Oto wynik wykonania powyższego skryptu.

Przewijanie poziome na stronie internetowej

Dowiedz się więcej o: JavaWykonawca skryptu

Co to jest pasek przewijania?

Pasek przewijania umożliwia poruszanie się po ekranie w poziomie lub w pionie, jeśli przewijanie bieżącej strony nie mieści się w widocznym obszarze ekranu. Służy do przesuwania okna w górę i w dół.

Selenium Webdriver nie wymaga przewijania do wykonywania działań, ponieważ manipuluje DOM. Jednak na niektórych stronach internetowych elementy stają się widoczne dopiero po przewinięciu do nich przez użytkownika. W takich przypadkach może być konieczne przewijanie.

Pasek przewijania jest dwojakiego rodzaju: Poziomy oraz pionowy pasek przewijania, jak pokazano na poniższym zrzucie ekranu.

pasek przewijania

pasek przewijania

Podsumowanie

  • W powyższym samouczku ilustrujemy przewijanie strony internetowej w różnych scenariuszach.
  • W pierwszym scenariuszu pokazaliśmy przewijanie strona po pikselu w dół.
  • W drugim scenariuszu pokazaliśmy przewijanie strony w dół, aż element będzie widoczny.
  • W trzecim scenariuszu pokazaliśmy przewijanie strony na dole strony.
  • W czwartym scenariuszu zilustrowano poziome przewijanie strony internetowej.