Was ist eine Bildlaufleiste?
Mit einer Bildlaufleiste können Sie sich in horizontaler oder vertikaler Richtung auf dem Bildschirm bewegen, wenn der aktuelle Bildlauf nicht in den sichtbaren Bereich des Bildschirms passt. Es wird verwendet, um das Fenster auf und ab zu bewegen.
Selenium Webdriver benötigt keinen Bildlauf, um Aktionen auszuführen, da es das DOM manipuliert. Auf bestimmten Webseiten werden Elemente jedoch erst sichtbar, wenn der Benutzer zu ihnen gescrollt hat. In solchen Fällen kann ein Bildlauf erforderlich sein.
Es gibt zwei Arten von Bildlaufleisten: Horizontale und vertikale Bildlaufleisten, wie im folgenden Screenshot gezeigt.
Scrollen Sie in Selen
Um mit Selenium zu scrollen, können Sie die JavaScriptExecutor-Oberfläche verwenden, mit deren Hilfe JavaScript-Methoden über Selenium Webdriver ausgeführt werden können
Erfahren Sie mehr über JavaScriptExecutor
Syntax :
JavascriptExecutor js = (JavascriptExecutor) Treiber;js.executeScript (Skript, Argumente);
- Skript - Dies ist das JavaScript, das ausgeführt werden muss.
- Argumente - Dies sind die Argumente für das Skript. Es ist optional.
Selenium Script, um die Seite nach unten zu scrollen
Sehen wir uns an, wie Sie mit dem Selenium-Webdriver eine Webseite mit den folgenden drei Szenarien nach unten scrollen:
- Szenario 1: Um die Webseite pixelweise nach unten zu scrollen.
- Szenario 2: Scrollen der Webseite um die Sichtbarkeit des Elements.
- Szenario 3: Scrollen Sie auf der Webseite unten auf der Seite nach unten.
- Szenario 4: Horizontaler Bildlauf auf der Webseite.
Szenario 1: Um die Webseite pixelweise nach unten zu scrollen.
Selenskript
import org.openqa.selenium.JavascriptExecutor;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;öffentliche Klasse ScrollByPixel {WebDriver-Treiber;@Prüfungpublic void ByPixel () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");Treiber = neuer ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) Treiber;// Anwendung startendriver.get ("http://demo.guru99.com/test/guru99home/");// Um das Fenster zu maximieren. Dieser Code funktioniert möglicherweise nicht mit Selenium 3-Gläsern. Wenn das Skript fehlschlägt, können Sie die folgende Zeile entfernendriver.manage (). window (). maxim ();// Dadurch wird die Seite um 1000 Pixel vertikal nach unten gescrolltjs.executeScript ("window.scrollBy (0,1000)");}}}}
Skriptbeschreibung : Im obigen Code starten wir zuerst die angegebene URL im Chrome-Browser. Scrollen Sie als Nächstes um 1000 Pixel durch executeScript. Javascript-Methode ScrollBy () scrollt die Webseite auf die bestimmte Anzahl von Pixeln.
Die Syntax der ScrollBy () -Methoden lautet:
executeScript ("window.scrollBy (x-Pixel, y-Pixel)");
x-Pixel ist die Zahl auf der x-Achse, sie bewegt sich nach links, wenn die Zahl positiv ist, und sie bewegt sich nach rechts, wenn die Zahl negativ ist. y-Pixel ist die Zahl auf der y-Achse, sie bewegt sich nach unten, wenn die Zahl ist positiv und es bewegt sich nach oben, wenn die Zahl negativ ist.
Beispiel:
js.executeScript ("window.scrollBy (0,1000)"); // Scrolle vertikal um 1000 Pixel nach unten
Ausgabeanalyse : Hier ist die Ausgabe, wenn Sie das obige Skript ausführen.
Szenario 2: Scrollen der Webseite um die Sichtbarkeit des Elements.
Selenskript
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;öffentliche Klasse ScrollByVisibleElement {WebDriver-Treiber;@Prüfungpublic void ByVisibleElement () {System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");Treiber = neuer ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) Treiber;//Anwendung startendriver.get ("http://demo.guru99.com/test/guru99home/");// Element durch Linktext suchen und in Variable "Element" speichernWebElement Element = driver.findElement (By.linkText ("Linux"));// Dadurch wird die Seite gescrollt, bis das Element gefunden wurdejs.executeScript ("Argumente [0] .scrollIntoView ();", Element);}}}}
Skriptbeschreibung: Im obigen Code starten wir zuerst die angegebene URL im Chrome-Browser. Scrollen Sie als Nächstes durch die Seite, bis das erwähnte Element auf der aktuellen Seite sichtbar ist. Die Javascript-Methode scrollIntoView () scrollt die Seite, bis das erwähnte Element vollständig angezeigt wird:
js.executeScript ("Argumente [0] .scrollIntoView ();", Element);
"Argumente [0]" bedeutet den ersten Index der Seite, der bei 0 beginnt.
Wobei ein "Element" der Locator auf der Webseite ist.
Ausgabeanalyse : Hier ist die Ausgabe, wenn Sie das obige Skript ausführen.
Szenario 3: Scrollen Sie auf der Webseite unten auf der Seite nach unten.
Selenskript
import org.openqa.selenium.JavascriptExecutor;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;öffentliche Klasse ScrollByPage {WebDriver-Treiber;@Prüfungpublic void ByPage () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");Treiber = neuer ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) Treiber;// Anwendung startendriver.get ("http://demo.guru99.com/test/guru99home/");// Dadurch wird die Webseite bis zum Ende gescrollt.js.executeScript ("window.scrollTo (0, document.body.scrollHeight)");}}}}
Skriptbeschreibung: Im obigen Code starten wir zuerst die angegebene URL im Chrome-Browser. Scrollen Sie als Nächstes bis zum Ende der Seite. Javascript-Methode scrollTo () scrollt bis zum Ende der Seite.
js.executeScript ("window.scrollTo (0, document.body.scrollHeight)");
"document.body.scrollHeight" gibt die vollständige Höhe des Körpers zurück, dh die Webseite.
Ausgabeanalyse : Hier ist die Ausgabe, wenn Sie das obige Skript ausführen.
Szenario 4: Horizontaler Bildlauf auf der Webseite.
Selenskript
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;öffentliche Klasse HorizontalScroll {WebDriver-Treiber;@Prüfungpublic void ScrollHorizontally () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");Treiber = neuer ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) Treiber;// Anwendung startendriver.get ("http://demo.guru99.com/test/guru99home/scrolling.html");WebElement Element = driver.findElement (By.linkText ("VBScript"));// Dadurch wird die Seite horizontal gescrollt, bis das Element gefunden wurdejs.executeScript ("Argumente [0] .scrollIntoView ();", Element);}}}}
Skriptbeschreibung: Im obigen Code starten wir zuerst die angegebene URL im Chrome-Browser. Scrollen Sie als Nächstes horizontal durch die Seite, bis das erwähnte Element auf der aktuellen Seite sichtbar ist. Die Javascript-Methode scrollIntoView () scrollt die Seite, bis das erwähnte Element vollständig angezeigt wird:
js.executeScript ("Argumente [0] .scrollIntoView ();", Element);
Ausgabeanalyse : Hier ist die Ausgabe, wenn Sie das obige Skript ausführen.
Zusammenfassung
- Im obigen Tutorial veranschaulichen wir den Bildlauf der Webseite durch verschiedene Szenarien.
- Im ersten Szenario haben wir den Bildlauf auf Seite für Pixel nach unten gezeigt.
- Im zweiten Szenario haben wir den Bildlauf nach unten bis zum sichtbaren Element angezeigt.
- Im dritten Szenario haben wir den Bildlauf nach unten unten auf der Seite angezeigt.
- Im vierten Szenario wird der horizontale Bildlauf auf der Webseite dargestellt.