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.