Omlaag of OMHOOG scrollen Pagina in Selenium Webstuurprogramma
Scroll naar binnen Selenium
Om te scrollen met Selenium, Kunt u gebruik maken JavaScriptExecutor-interface die helpt bij het uitvoeren JavaScriptmethoden via Selenium Webstuurprogramma
Syntax:
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript(Script,Arguments);
- Script – Dit is het JavaScript dat uitgevoerd moet worden.
- Argumenten – Het zijn de argumenten voor het script. Het is optioneel.
Selenium Script om naar beneden te scrollen op de pagina
Laten we eens kijken naar het scrollen van een webpagina met behulp van de Selenium Webdriver met de volgende 4 scenario's:
- Scenario 1: Pixelsgewijs naar beneden scrollen op de webpagina.
- Scenario 2: Om door de webpagina te scrollen op basis van de zichtbaarheid van het element.
- Scenario 3: Om onderaan de webpagina naar beneden te scrollen.
- Scenario 4: Horizontaal scrollen op de webpagina.
Scenario 1: Pixelsgewijs naar beneden scrollen op de webpagina.
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: In de bovenstaande code lanceren we eerst de opgegeven URL in de Chrome-browser. Blader vervolgens door de pagina met 1000 pixels via executeScript. Javascript methode ScrollBy() scrollt de webpagina naar het specifieke aantal pixels.
De syntaxis van ScrollBy()-methoden is:
executeScript("window.scrollBy(x-pixels,y-pixels)");
x-pixels is het getal op de x-as, het beweegt naar links als het getal positief is en het beweegt naar rechts als het getal negatief is. y-pixels is het getal op de y-as, het beweegt naar beneden als het getal is positief en het gaat naar boven als het getal negatief is.
Voorbeeld:
js.executeScript("window.scrollBy(0,1000)"); //Scroll vertically down by 1000 pixels
Outputanalyse: Hier is de uitvoer wanneer u het bovenstaande script uitvoert.
Scenario 2: Om door de webpagina te scrollen op basis van de zichtbaarheid van het element.
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: In de bovenstaande code lanceren we eerst de gegeven URL in de Chrome-browser. Blader vervolgens door de pagina totdat het genoemde element zichtbaar is op de huidige pagina. Javascript methode scrollIntoView() scrollt door de pagina totdat het genoemde element volledig zichtbaar is:
js.executeScript("arguments[0].scrollIntoView();",Element );
“argumenten[0]” betekent de eerste index van de pagina beginnend bij 0.
Waar een ‘Element’ de locator op de webpagina is.
Outputanalyse: Hier is de uitvoer wanneer u het bovenstaande script uitvoert.
Scenario 3: Om onderaan de webpagina naar beneden te scrollen.
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: In de bovenstaande code lanceren we eerst de gegeven URL in de Chrome-browser. Scroll vervolgens naar de onderkant van de pagina. Javascript methode scrollTo() scroll tot het einde van de pagina.
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
“document.body.scrollHeight” retourneert de volledige hoogte van de hoofdtekst, dwz webpagina.
Outputanalyse: Hier is de uitvoer wanneer u het bovenstaande script uitvoert.
Scenario 4: Horizontaal scrollen op de webpagina
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: In de bovenstaande code lanceren we eerst de gegeven URL in de Chrome-browser. Blader vervolgens horizontaal door de pagina totdat het genoemde element zichtbaar is op de huidige pagina. Javascript methode scrollIntoView() scrollt door de pagina totdat het genoemde element volledig zichtbaar is:
js.executeScript("arguments[0].scrollIntoView();",Element );
Outputanalyse: Hier is de uitvoer wanneer u het bovenstaande script uitvoert.
Lees verder over JavaScriptUitvoerder
Wat is een schuifbalk?
Met een schuifbalk kunt u in horizontale of verticale richting door het scherm bewegen als het scrollen van de huidige pagina niet in het zichtbare gedeelte van het scherm past. Het wordt gebruikt om het raam op en neer te bewegen.
Selenium Webdriver vereist geen scroll om acties uit te voeren omdat het DOM manipuleert. Maar op bepaalde webpagina's worden elementen pas zichtbaar als de gebruiker ernaartoe heeft gescrolld. In dergelijke gevallen kan scrollen nodig zijn.
De schuifbalk bestaat uit twee typen: Horizontaal en verticaal schuifbalk zoals weergegeven in onderstaande schermafbeelding.
Samenvatting
- In de bovenstaande tutorial illustreren we het scrollen van de webpagina door middel van verschillende scenario's.
- In het eerste scenario lieten we het scrollen pagina voor pixel zien.
- In het tweede scenario lieten we het naar beneden scrollen van de pagina zien totdat het element zichtbaar werd.
- In het derde scenario lieten we het naar beneden scrollen van de pagina onderaan de pagina zien.
- In het vierde scenario werd de horizontale scroll op de webpagina geïllustreerd.