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.






