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.
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.
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.
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.
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.
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.