Kako pomicati stranicu prema dolje ili prema gore Selenium Webdriver
⚡ Pametni sažetak
Pomicanje stranice unutra Selenium WebDriver koristi JavascriptIzvršno sučelje za pokretanje JavaNaredbe za pomicanje skripte, jer WebDriver izravno manipulira DOM-om. Četiri praktična scenarija pokrivaju pomicanje po pikselu, do elementa, do dna stranice i horizontalno.

Pomaknite se Selenium
Za pomicanje pomoću Selenium, Možete koristiti JavaScriptExecutor sučelje koje pomaže u izvršenju JavaMetode skripte kroz Selenium Webdriver
Sintaksa:
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript(Script,Arguments);
- Skripta – Ovo je JavaSkripta koja se treba izvršiti.
- Argumenti – To su argumenti za scenarij. Nije obavezno.
Što je traka za pomicanje?
Traka za pomicanje omogućuje vam kretanje po zaslonu u vodoravnom ili okomitom smjeru ako pomicanje trenutne stranice ne stane u vidljivo područje zaslona. Koristi se za pomicanje prozora gore-dolje.
Selenium Webdriver ne zahtijeva pomicanje za izvođenje radnji jer manipulira DOM-om. Ali na određenim web-stranicama elementi postaju vidljivi tek nakon što se korisnik pomakne do njih. U takvim slučajevima može biti potrebno pomicanje.
Traka za pomicanje je dvije vrste: Vodoravan i vertikalna traku za pomicanje kao što je prikazano na slici ispod.
Selenium Skripta za pomicanje stranice prema dolje
Pogledajmo pomicanje web stranice prema dolje pomoću selenium webdrivera sa sljedeća 4 scenarija:
- Scenarij 1: Za pomicanje web stranice prema dolje po piksel.
- Scenarij 2: Pomicanje web-stranice prema dolje prema vidljivosti elementa.
- Scenarij 3: Za pomicanje web stranice prema dolje na dnu stranice.
- Scenarij 4: Horizontalno pomicanje na web stranici.
Scenarij 1: Za pomicanje web stranice prema dolje po piksel.
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 { 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)"); } }
Script DescriptionU gornjem kodu prvo pokrećemo zadano URL u pregledniku Chrome. Zatim pomaknite stranicu za 1000 piksela pomoću executeScript. Javascript metoda ScrollBy() pomiče web stranicu do određenog broja piksela.
Sintaksa metoda ScrollBy() je:
executeScript("window.scrollBy(x-pixels,y-pixels)");
x-pikseli su broj na x-osi, pomiču se ulijevo ako je broj pozitivan i pomiču se udesno ako je broj negativan. y-pikseli su broj na y-osi, pomiču se prema dolje ako je broj pozitivan i pomiče se prema gore ako je broj negativan.
Primjer:
js.executeScript("window.scrollBy(0,1000)"); //Scroll vertically down by 1000 pixels
Analiza izlaza: Ovo je rezultat kada izvršite gornju skriptu.
Scenarij 2: Pomicanje web-stranice prema dolje prema vidljivosti elementa.
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 { 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); } }
Script Description: U gornjem kodu prvo pokrećemo dati url u pregledniku Chrome. Zatim pomičite stranicu sve dok spomenuti element ne bude vidljiv na trenutnoj stranici. Javascript metoda scrollIntoView() pomiče stranicu dok navedeni element ne bude u punom prikazu:
js.executeScript("arguments[0].scrollIntoView();",Element );
“argumenti[0]” znači prvi indeks stranice koji počinje s 0.
Gdje je "Element" lokator na web stranici.
Analiza izlaza: Ovo je rezultat kada izvršite gornju skriptu.
Scenarij 3: Za pomicanje web stranice prema dolje na dnu stranice.
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 { 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)"); } }
Script Description: U gornjem kodu prvo pokrećemo dati url u pregledniku Chrome. Zatim se pomaknite do dna stranice. Javascript metoda scrollTo() pomaknite se do kraja stranice.
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
“document.body.scrollHeight” vraća kompletnu visinu tijela tj. web stranice.
Analiza izlaza: Ovo je rezultat kada izvršite gornju skriptu.
Scenarij 4: Horizontalno pomicanje na web stranici
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 { 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); } }
Script Description: U gornjem kodu prvo pokrećemo dati url u pregledniku Chrome. Zatim pomičite stranicu vodoravno dok navedeni element ne bude vidljiv na trenutnoj stranici. Javascript metoda scrollIntoView() pomiče stranicu dok navedeni element ne bude u punom prikazu:
js.executeScript("arguments[0].scrollIntoView();",Element );
Analiza izlaza: Ovo je rezultat kada izvršite gornju skriptu.
Saznajte više o JavaScriptExecutor






