Hur man rullar ner eller upp en sida i Selen Webdriver

Innehållsförteckning:

Anonim

Vad är en rullningsfält?

En rullningsfält är en låter dig flytta runt skärmen i horisontell eller vertikal riktning om den aktuella sidrullningen inte passar det synliga området på skärmen. Det används för att flytta fönstret upp och ner.

Selenium Webdriver behöver inte bläddra för att utföra åtgärder eftersom den manipulerar DOM. Men på vissa webbsidor blir element bara synliga när användaren har bläddrat till dem. I sådana fall kan rullning vara nödvändig.

Rullfältet är av två typer: Horisontellt och vertikalt rullningsfält som visas i skärmbilden nedan.

Bläddra i selen

För att bläddra med Selenium kan du använda JavaScriptExecutor-gränssnittet som hjälper till att köra JavaScript-metoder via Selenium Webdriver

Läs mer om JavaScriptExecutor

Syntax:

JavascriptExecutor js = (JavascriptExecutor) drivrutin;js.executeScript (skript, argument);
  • Skript - Detta är JavaScript som måste köras.
  • Argument - Det är argumenten till manuset. Det är valfritt.

Selenium Script för att bläddra ner på sidan

Låt oss se bläddra ner på en webbsida med selen webdriver med följande 3 scenarier:

  • Scenario 1: För att rulla ner på webbsidan för pixel.
  • Scenario 2: För att bläddra ner på webbsidan efter elementets synlighet.
  • Scenario 3: Rulla ner på webbsidan längst ner på sidan.
  • Scenario 4: Horisontell bläddring på webbsidan.

Scenario 1: För att rulla ner på webbsidan för pixel.

Selen Script

importera org.openqa.selenium.JavascriptExecutor;importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.chrome.ChromeDriver;importera org.testng.annotations.Test;offentlig klass ScrollByPixel {WebDriver-drivrutin;@Testaoffentligt ogiltigt ByPixel () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");drivrutin = ny ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) drivrutin;// Starta applikationendriver.get ("http://demo.guru99.com/test/guru99home/");// För att maximera fönstret. Den här koden kanske inte fungerar med Selenium-burkar. Om skriptet misslyckas kan du ta bort raden nedandriver.manage (). fönster (). maximera ();// Detta rullar nedåt på sidan med 1000 pixlar vertikaltjs.executeScript ("window.scrollBy (0,1000)");}}

Skriptbeskrivning : I ovanstående kod startar vi först den angivna webbadressen i webbläsaren Chrome. Rulla sedan sidan med 1000 pixlar genom executeScript. Javascript-metod ScrollBy () rullar webbsidan till det specifika antalet pixlar.

Syntaksen för ScrollBy () -metoderna är:

executeScript ("window.scrollBy (x-pixlar, y-pixlar)");

x-pixlar är siffran vid x-axeln, den rör sig till vänster om talet är positivt och det rör sig åt höger om antalet är negativt. y-pixlar är talet på y-axeln, det rör sig nedåt om talet är positivt och det går uppåt om antalet är negativt.

Exempel:

js.executeScript ("window.scrollBy (0,1000)"); // Bläddra vertikalt nedåt med 1000 pixlar 

Outputanalys: Här är resultatet när du kör ovanstående skript.

Scenario 2: För att bläddra ner på webbsidan efter elementets synlighet.

Selen Script

importera org.openqa.selenium.By;importera org.openqa.selenium.JavascriptExecutor;importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.WebElement;importera org.openqa.selenium.chrome.ChromeDriver;importera org.testng.annotations.Test;offentlig klass ScrollByVisibleElement {WebDriver-drivrutin;@Testaoffentligt ogiltigt ByVisibleElement () {System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");drivrutin = ny ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) drivrutin;// Starta applikationendriver.get ("http://demo.guru99.com/test/guru99home/");// Hitta element med länktext och lagra i variabeln "Element"WebElement Element = driver.findElement (By.linkText ("Linux"));// Detta rullar på sidan tills elementet hittasjs.executeScript ("argument [0] .scrollIntoView ();", Element);}}

Skriptbeskrivning: I ovanstående kod startar vi först den angivna webbadressen i Chrome-webbläsaren. Därefter rullar du på sidan tills det nämnda elementet syns på den aktuella sidan. Javascript-metod scrollIntoView () rullar på sidan tills nämnda element är i full vy:

js.executeScript ("argument [0] .scrollIntoView ();", Element); 

"argument [0]" betyder första index på sidan som börjar vid 0.

Där ett "Element" är lokaliseraren på webbsidan.

Outputanalys: Här är resultatet när du kör ovanstående skript.

Scenario 3: Rulla ner på webbsidan längst ner på sidan.

Selen Script

importera org.openqa.selenium.JavascriptExecutor;importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.chrome.ChromeDriver;importera org.testng.annotations.Test;offentlig klass ScrollByPage {WebDriver-drivrutin;@Testaoffentligt ogiltigt ByPage () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");drivrutin = ny ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) drivrutin;// Starta applikationendriver.get ("http://demo.guru99.com/test/guru99home/");// Detta rullar på webbsidan till slutet.js.executeScript ("window.scrollTo (0, document.body.scrollHeight)");}}

Skriptbeskrivning: I ovanstående kod startar vi först den angivna webbadressen i Chrome-webbläsaren. Bläddra sedan till längst ner på sidan. Javascript-metod scrollTo () bläddra fram till slutet av sidan.

js.executeScript ("window.scrollTo (0, document.body.scrollHeight)"); 

"document.body.scrollHeight" returnerar hela kroppshöjden, dvs. webbsidan.

Outputanalys: Här är utdata när du kör ovanstående skript.

Scenario 4: Horisontell bläddring på webbsidan.

Selen Script

importera org.openqa.selenium.By;importera org.openqa.selenium.JavascriptExecutor;importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.WebElement;importera org.openqa.selenium.chrome.ChromeDriver;importera org.testng.annotations.Test;offentlig klass HorizontalScroll {WebDriver-drivrutin;@Testaoffentligt ogiltigt ScrollHorizontally () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");drivrutin = ny ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) drivrutin;// Starta applikationendriver.get ("http://demo.guru99.com/test/guru99home/scrolling.html");WebElement Element = driver.findElement (By.linkText ("VBScript"));// Detta rullar sidan horisontellt tills elementet hittasjs.executeScript ("argument [0] .scrollIntoView ();", Element);}}

Skriptbeskrivning: I ovanstående kod startar vi först den angivna webbadressen i Chrome-webbläsaren. Därefter rullar du sidan horisontellt tills det nämnda elementet syns på den aktuella sidan. Javascript-metod scrollIntoView () rullar på sidan tills nämnda element är i full vy:

js.executeScript ("argument [0] .scrollIntoView ();", Element);

Outputanalys: Här är utdata när du kör ovanstående skript.

Sammanfattning

  • I ovanstående handledning illustrerar vi webbsidans bläddring genom olika scenarier.
  • I det första scenariot visade vi bläddra ner på sidan för pixel.
  • I det andra scenariot visade vi bläddra ner på sidan tills det synliga av elementet.
  • I det tredje scenariot visade vi bläddra ner på sidan längst ner på sidan.
  • I det fjärde scenariot illustreras den horisontella rullningen på webbsidan.