Slik ruller du ned eller opp på siden Selenium Webdriver
Rull inn Selenium
For å bla ved hjelp av Selenium, Kan du bruke JavaScriptExecutor-grensesnitt som hjelper å utføre JavaSkriptmetoder gjennom Selenium Webdriver
Syntaks:
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript(Script,Arguments);
- Script - Dette er JavaSkript som må kjøres.
- Argumenter – Det er argumentene til manuset. Det er valgfritt.
Selenium Skript for å rulle nedover siden
La oss se rulle nedover en nettside ved hjelp av selen webdriver med følgende 4 scenarier:
- Scenario 1: For å rulle nedover nettsiden for piksel.
- Scenario 2: For å rulle nedover nettsiden etter synligheten til elementet.
- Scenario 3: For å bla nedover nettsiden nederst på siden.
- Scenario 4: Horisontal rulling på nettsiden.
Scenario 1: For å rulle nedover nettsiden for 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 Description: I koden ovenfor starter vi først den gitte nettadressen i Chrome-nettleseren. Deretter ruller du siden med 1000 piksler gjennom executeScript. Javascript metode ScrollBy() ruller nettsiden til det spesifikke antallet piksler.
Syntaksen til ScrollBy()-metodene er:
executeScript("window.scrollBy(x-pixels,y-pixels)");
x-piksler er tallet på x-aksen, det flyttes til venstre hvis tallet er positivt og det flyttes til høyre hvis tallet er negativt. y-piksler er tallet på y-aksen, det flyttes ned hvis tallet er positiv og den flyttes til opp hvis tallet er negativt.
Eksempel:
js.executeScript("window.scrollBy(0,1000)"); //Scroll vertically down by 1000 pixels
Utgangsanalyse: Her er utdataene når du kjører skriptet ovenfor.
Scenario 2: For å rulle nedover nettsiden etter synligheten til elementet.
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: I koden ovenfor starter vi først den gitte nettadressen i Chrome-nettleseren. Deretter ruller du siden til det nevnte elementet er synlig på gjeldende side. Javascript metode scrollIntoView() ruller siden til det nevnte elementet er i full visning:
js.executeScript("arguments[0].scrollIntoView();",Element );
"argumenter[0]" betyr første indeks på siden som starter på 0.
Der et "element" er lokalisatoren på nettsiden.
Utgangsanalyse: Her er utdataene når du kjører skriptet ovenfor.
Scenario 3: For å bla nedover nettsiden nederst på siden.
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: I koden ovenfor starter vi først den gitte nettadressen i Chrome-nettleseren. Deretter bla til bunnen av siden. Javascript metode scrollTo() bla til slutten av siden.
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
"document.body.scrollHeight" returnerer hele høyden på kroppen, dvs. nettsiden.
Utgangsanalyse: Her er utdataene når du kjører skriptet ovenfor.
Scenario 4: Horisontal rulling på nettsiden
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: I koden ovenfor starter vi først den gitte nettadressen i Chrome-nettleseren. Deretter ruller du siden horisontalt til det nevnte elementet er synlig på gjeldende side. Javascript metode scrollIntoView() ruller siden til det nevnte elementet er i full visning:
js.executeScript("arguments[0].scrollIntoView();",Element );
Utgangsanalyse: Her er utdataene når du kjører skriptet ovenfor.
Lær mer om JavaScriptExecutor
Hva er en rullefelt?
Et rullefelt lar deg flytte rundt på skjermen i horisontal eller vertikal retning hvis den gjeldende siderullingen ikke passer til det synlige området på skjermen. Den brukes til å flytte vinduet opp og ned.
Selenium Webdriver krever ikke rulling for å utføre handlinger da den manipulerer DOM. Men på enkelte nettsider blir elementer først synlige når brukeren har rullet til dem. I slike tilfeller kan det være nødvendig å rulle.
Rullefeltet er av to typer: Horisontal og vertikal rullefelt som vist i skjermbildet nedenfor.
Sammendrag
- I opplæringen ovenfor illustrerer vi rullingen av nettsiden gjennom forskjellige scenarier.
- I det første scenariet viste vi rullingen nedover side for piksel.
- I det andre scenariet viste vi bla nedover på siden til elementet ble synlig.
- I det tredje scenariet viste vi rullingen ned på siden nederst på siden.
- I det fjerde scenariet, illustrert den horisontale rullen på nettsiden.