Wat is een schuifbalk?
Met een schuifbalk kunt u in horizontale of verticale richting door het scherm bewegen als de huidige paginascroll 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, aangezien het DOM manipuleert. Maar op bepaalde webpagina's worden elementen pas zichtbaar als de gebruiker ernaartoe heeft gescrolld. In dergelijke gevallen kan het nodig zijn om te scrollen.
De schuifbalk is van twee typen: horizontale en verticale schuifbalk zoals weergegeven in de onderstaande schermafbeelding.
Scroll in Selenium
Om met Selenium te scrollen, kunt u de JavaScriptExecutor-interface gebruiken die helpt bij het uitvoeren van JavaScript-methoden via Selenium Webdriver
Meer informatie over JavaScriptExecutor
Syntaxis:
JavascriptExecutor js = (JavascriptExecutor) stuurprogramma;js.executeScript (script, argumenten);
- Script - Dit is het JavaScript dat moet worden uitgevoerd.
- Argumenten - Het zijn de argumenten voor het script. Het is optioneel.
Selenium Script om naar beneden te scrollen
Laten we eens kijken naar het naar beneden scrollen op een webpagina met behulp van de selenium-webdriver met de volgende 3 scenario's:
- Scenario 1: Om pixel naar beneden te scrollen op de webpagina.
- Scenario 2: Om door de webpagina naar beneden te scrollen op basis van de zichtbaarheid van het element.
- Scenario 3: Om naar beneden te scrollen op de webpagina onder aan de pagina.
- Scenario 4: horizontaal scrollen op de webpagina.
Scenario 1: Om pixel naar beneden te scrollen op de webpagina.
Selenium-script
importeer org.openqa.selenium.JavascriptExecutor;importeer org.openqa.selenium.WebDriver;importeer org.openqa.selenium.chrome.ChromeDriver;importeer org.testng.annotations.Test;openbare klasse ScrollByPixel {WebDriver-stuurprogramma;@Testopenbare ongeldige ByPixel () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");driver = nieuwe ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) stuurprogramma;// Start de applicatiedriver.get ("http://demo.guru99.com/test/guru99home/");// Om het venster te maximaliseren. Deze code werkt mogelijk niet met Selenium 3-potten. Als het script mislukt, kunt u de onderstaande regel verwijderendriver.manage (). window (). maximaliseren ();// Hierdoor wordt de pagina verticaal met 1000 pixels naar beneden gescrolldjs.executeScript ("window.scrollBy (0,1000)");
Scriptbeschrijving : In de bovenstaande code starten we eerst de opgegeven URL in de Chrome-browser. Blader vervolgens door de pagina met 1000 pixels door executeScript. Javascript-methode ScrollBy () schuift de webpagina naar het specifieke aantal pixels.
De syntaxis van de 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 verplaatst 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)"); // Scrol verticaal omlaag met 1000 pixels
Uitvoeranalyse: hier is de uitvoer wanneer u het bovenstaande script uitvoert.
Scenario 2: Om door de webpagina naar beneden te scrollen op basis van de zichtbaarheid van het element.
Selenium-script
import org.openqa.selenium.By;importeer org.openqa.selenium.JavascriptExecutor;importeer org.openqa.selenium.WebDriver;importeer org.openqa.selenium.WebElement;importeer org.openqa.selenium.chrome.ChromeDriver;importeer org.testng.annotations.Test;openbare klasse ScrollByVisibleElement {WebDriver-stuurprogramma;@Testopenbare ongeldige ByVisibleElement () {System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");driver = nieuwe ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) stuurprogramma;// Start de applicatiedriver.get ("http://demo.guru99.com/test/guru99home/");// Zoek element op linktekst en sla het op in variabele "Element"WebElement Element = driver.findElement (By.linkText ("Linux"));// Dit zal de pagina scrollen totdat het element is gevondenjs.executeScript ("arguments [0] .scrollIntoView ();", Element);
Scriptbeschrijving: In de bovenstaande code starten we eerst de opgegeven 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 eerste index van pagina beginnend bij 0.
Waar een "Element" de locator op de webpagina is.
Uitvoeranalyse: hier is de uitvoer wanneer u het bovenstaande script uitvoert.
Scenario 3: Om naar beneden te scrollen op de webpagina onder aan de pagina.
Selenium-script
importeer org.openqa.selenium.JavascriptExecutor;importeer org.openqa.selenium.WebDriver;importeer org.openqa.selenium.chrome.ChromeDriver;importeer org.testng.annotations.Test;openbare klasse ScrollByPage {WebDriver-stuurprogramma;@Testopenbare ongeldige ByPage () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");driver = nieuwe ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) stuurprogramma;// Start de applicatiedriver.get ("http://demo.guru99.com/test/guru99home/");// Dit zal de webpagina tot het einde scrollen.js.executeScript ("window.scrollTo (0, document.body.scrollHeight)");
Scriptbeschrijving: In de bovenstaande code starten we eerst de opgegeven url in de Chrome-browser. Blader vervolgens naar de onderkant van de pagina. Javascript-methode scrollTo () scrol naar 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.
Uitvoeranalyse: hier is de uitvoer wanneer u het bovenstaande script uitvoert.
Scenario 4: horizontaal scrollen op de webpagina.
Selenium-script
import org.openqa.selenium.By;importeer org.openqa.selenium.JavascriptExecutor;importeer org.openqa.selenium.WebDriver;importeer org.openqa.selenium.WebElement;importeer org.openqa.selenium.chrome.ChromeDriver;importeer org.testng.annotations.Test;openbare klasse HorizontalScroll {WebDriver-stuurprogramma;@Testopenbare leegte ScrollHorizontally () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");driver = nieuwe ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) stuurprogramma;// Start de applicatiedriver.get ("http://demo.guru99.com/test/guru99home/scrolling.html");WebElement Element = driver.findElement (By.linkText ("VBScript"));// Hierdoor wordt de pagina horizontaal gescrolld totdat het element is gevondenjs.executeScript ("arguments [0] .scrollIntoView ();", Element);
Scriptbeschrijving: In de bovenstaande code starten we eerst de opgegeven 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);
Uitvoeranalyse: hier is de uitvoer wanneer u het bovenstaande script uitvoert.
Overzicht
- In de bovenstaande tutorial illustreren we het scrollen van de webpagina door verschillende scenario's.
- In het eerste scenario lieten we de scroll pagina voor pixel naar beneden zien.
- In het tweede scenario lieten we de scroll naar beneden op de pagina zien totdat het element zichtbaar werd.
- In het derde scenario lieten we de scroll naar beneden op de pagina onderaan de pagina zien.
- In het vierde scenario, illustreerde de horizontale scroll op de webpagina.