Jak przewinąć stronę w dół lub w górę w Selenium Webdriver

Spisie treści:

Anonim

Co to jest pasek przewijania?

Pasek przewijania umożliwia poruszanie się po ekranie w kierunku poziomym lub pionowym, jeśli przewijanie bieżącej strony nie mieści się w widocznym obszarze ekranu. Służy do przesuwania okna w górę iw 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 ma dwa rodzaje: poziomy i pionowy pasek przewijania, jak pokazano na poniższym zrzucie ekranu.

Przewiń w Selenium

Aby przewijać za pomocą Selenium, możesz użyć interfejsu JavaScriptExecutor, który pomaga wykonywać metody JavaScript przez Selenium Webdriver

Dowiedz się więcej o JavaScriptExecutor

Składnia:

JavascriptExecutor js = (JavascriptExecutor) sterownik;js.executeScript (skrypt, argumenty);
  • Skrypt - to jest JavaScript, który musi zostać wykonany.
  • Argumenty - to argumenty do skryptu. To jest opcjonalne.

Selenium Script, aby przewinąć stronę w dół

Zobaczmy przewijanie strony internetowej za pomocą selenu webdriver z następującymi 3 scenariuszami:

  • Scenariusz 1: przewijanie strony internetowej po pikselach.
  • Scenariusz 2: przewijanie strony internetowej w dół według widoczności elementu.
  • Scenariusz 3: przewijanie strony internetowej u dołu strony.
  • Scenariusz 4: Przewijanie w poziomie na stronie internetowej.

Scenariusz 1: przewijanie strony internetowej po pikselach.

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 {Sterownik WebDriver;@Testpublic void ByPixel () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");sterownik = nowy ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) sterownik;// Uruchom aplikacjędriver.get („http://demo.guru99.com/test/guru99home/”);// Aby zmaksymalizować okno. Ten kod może nie działać ze słoikami Selenium 3. Jeśli skrypt zawiedzie, możesz usunąć poniższą liniędriver.manage (). window (). maximize ();// Spowoduje to przewinięcie strony w dół o 1000 pikseli w pioniejs.executeScript ("window.scrollBy (0,1000)");}}

Opis skryptu : W powyższym kodzie najpierw uruchamiamy podany adres URL w przeglądarce Chrome. Następnie przewiń stronę o 1000 pikseli za pomocą kodu executeScript. Metoda JavaScript 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-pixels to liczba na osi x, przesuwa się w lewo, jeśli liczba jest dodatnia, a przesuwa się w prawo, jeśli liczba jest ujemna. y-pixels 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)"); // Przewiń pionowo w dół o 1000 pikseli 

Analiza danych wyjściowych: Oto dane wyjściowe po wykonaniu powyższego skryptu.

Scenariusz 2: przewijanie strony internetowej w dół według widoczności elementu.

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 {Sterownik WebDriver;@Testpublic void ByVisibleElement () {System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");sterownik = nowy ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) sterownik;// Uruchom aplikacjędriver.get („http://demo.guru99.com/test/guru99home/”);// Znajdź element według tekstu linku i zapisz w zmiennej „Element”Element WebElement = driver.findElement (By.linkText ("Linux"));// Spowoduje to przewinięcie strony do momentu znalezienia elementujs.executeScript ("arguments [0] .scrollIntoView ();", Element);}}

Opis skryptu: W powyższym kodzie najpierw uruchamiamy podany adres URL w przeglądarce Chrome. Następnie przewijaj stronę, aż wspomniany element będzie widoczny na bieżącej stronie. Metoda JavaScript scrollIntoView () przewija stronę do momentu, gdy wspomniany element jest w pełni widoczny:

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

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

Gdzie „Element” to lokalizator na stronie internetowej.

Analiza danych wyjściowych: Oto dane wyjściowe po wykonaniu powyższego skryptu.

Scenariusz 3: przewijanie strony internetowej u dołu strony.

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 {Sterownik WebDriver;@Testpublic void ByPage () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");sterownik = nowy ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) sterownik;// Uruchom aplikacjędriver.get („http://demo.guru99.com/test/guru99home/”);// Spowoduje to przewinięcie strony internetowej do końca.js.executeScript ("window.scrollTo (0, document.body.scrollHeight)");}}

Opis skryptu: W powyższym kodzie najpierw uruchamiamy podany adres URL w przeglądarce Chrome. Następnie przewiń do dołu strony. Metoda JavaScript scrollTo () przewija do końca strony.

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

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

Analiza danych wyjściowych: Oto dane wyjściowe po wykonaniu powyższego skryptu.

Scenariusz 4: Przewijanie w poziomie na stronie internetowej.

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 {Sterownik WebDriver;@Testpublic void ScrollHorizontally () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");sterownik = nowy ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) sterownik;// Uruchom aplikacjędriver.get („http://demo.guru99.com/test/guru99home/scrolling.html”);Element WebElement = driver.findElement (By.linkText ("VBScript"));// Spowoduje to przewinięcie strony w poziomie do momentu znalezienia elementujs.executeScript ("arguments [0] .scrollIntoView ();", Element);}}

Opis skryptu: W powyższym kodzie najpierw uruchamiamy podany adres URL w przeglądarce Chrome. Następnie przewijaj stronę w poziomie, aż wspomniany element będzie widoczny na bieżącej stronie. Metoda JavaScript scrollIntoView () przewija stronę do momentu, gdy wspomniany element jest w pełni widoczny:

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

Analiza danych wyjściowych: Oto dane wyjściowe po wykonaniu powyższego skryptu.

Podsumowanie

  • W powyższym samouczku zilustrujemy przewijanie strony internetowej za pomocą różnych scenariuszy.
  • W pierwszym scenariuszu pokazaliśmy przewijanie w dół strona po pikselu.
  • W drugim scenariuszu pokazaliśmy przewijanie strony w dół, aż do momentu, gdy element będzie widoczny.
  • W trzecim scenariuszu pokazaliśmy przewijanie strony na dole strony.
  • W czwartym scenariuszu zilustrowano poziome przewijanie na stronie internetowej.