Sådan ruller du ned eller op på siden Selenium Webdriver
⚡ Smart opsummering
Rulning af en side i Selenium WebDriver bruger JavascriptExecutor-grænseflade til kørsel JavaScript-scrollkommandoer, fordi WebDriver manipulerer DOM'en direkte. Fire praktiske scenarier dækker scrollning pixel for pixel, til et element, til sidens bund og vandret.

Rul ind Selenium
For at rulle vha Selenium, Kan du bruge JavaScriptExecutor-grænseflade, der hjælper med at udføre JavaScript metoder igennem Selenium Webdriver
Syntaks:
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript(Script,Arguments);
- Script - Dette er JavaScript, der skal udføres.
- Argumenter - Det er argumenterne til manuskriptet. Det er valgfrit.
Hvad er en rullebjælke?
En rullepanel er en lader dig flytte rundt på skærmen i vandret eller lodret retning, hvis den aktuelle siderulle ikke passer til det synlige område af skærmen. Det bruges til at flytte vinduet op og ned.
Selenium Webdriver kræver ikke scroll for at udføre handlinger, da det manipulerer DOM. Men på visse websider bliver elementer først synlige, når brugeren har scrollet til dem. I sådanne tilfælde kan det være nødvendigt at rulle.
Rullebjælken er af to typer: Vandret og lodret rullepanel som vist på skærmbilledet nedenfor.
Selenium Script til at rulle ned på siden
Lad os se rulle ned en webside ved hjælp af selen webdriver med følgende 4 scenarier:
- Scenarie 1: For at rulle ned på websiden for pixel.
- Scenarie 2: For at rulle ned på websiden efter elementets synlighed.
- Scenario 3: For at rulle ned på websiden nederst på siden.
- Scenarie 4: Vandret rulning på websiden.
Scenarie 1: For at rulle ned på websiden for pixel.
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 DescriptionI ovenstående kode starter vi først den givne URL i Chrome-browseren. Rul derefter siden 1000 pixels igennem executeScript. Javascript metode ScrollBy() ruller websiden til det specifikke antal pixels.
Syntaksen for ScrollBy() metoder er:
executeScript("window.scrollBy(x-pixels,y-pixels)");
x-pixels er tallet på x-aksen, det flytter til venstre, hvis tallet er positivt, og det flyttes til højre, hvis tallet er negativt. y-pixels er tallet på y-aksen, det flytter ned, hvis tallet er positiv, og den flyttes til op, hvis tallet er negativt.
Eksempel:
js.executeScript("window.scrollBy(0,1000)"); //Scroll vertically down by 1000 pixels
Output analyse: Her er outputtet, når du udfører ovenstående script.
Scenarie 2: For at rulle ned på websiden efter elementets synlighed.
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 ovenstående kode starter vi først den givne url i Chrome-browseren. Dernæst scroller du på siden, indtil det nævnte element er synligt på den aktuelle side. Javascript metode scrollIntoView() ruller siden indtil det nævnte element er i fuld visning:
js.executeScript("arguments[0].scrollIntoView();",Element );
"argumenter[0]" betyder det første indeks på siden, der starter ved 0.
Hvor et " Element " er lokalisatoren på websiden.
Output analyse: Her er outputtet, når du udfører ovenstående script.
Scenario 3: For at rulle ned på websiden 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 ovenstående kode starter vi først den givne url i Chrome-browseren. Rul derefter til bunden af siden. Javascript metode scrollTo() scroll indtil slutningen af siden.
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
"document.body.scrollHeight" returnerer den fulde højde af kroppen, dvs. websiden.
Output analyse: Her er outputtet, når du udfører ovenstående script.
Scenarie 4: Vandret rulning på websiden
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 ovenstående kode starter vi først den givne url i Chrome-browseren. Rul derefter siden vandret, indtil det nævnte element er synligt på den aktuelle side. Javascript metode scrollIntoView() ruller siden indtil det nævnte element er i fuld visning:
js.executeScript("arguments[0].scrollIntoView();",Element );
Output analyse: Her er outputtet, når du udfører ovenstående script.
Lær mere om JavaScriptExecutor






