Sådan ruller du ned eller op på en side i Selen Webdriver

Indholdsfortegnelse:

Anonim

Hvad er en rullepanel?

En rullepanel er en giver dig mulighed for at bevæge dig rundt på skærmen i vandret eller lodret retning, hvis den aktuelle sidesrulning ikke passer til det synlige område på skærmen. Det bruges til at flytte vinduet op og ned.

Selen Webdriver kræver ikke rulle for at udføre handlinger, da den manipulerer DOM. Men på visse websider bliver elementer kun synlige, når brugeren har rullet til dem. I sådanne tilfælde kan det være nødvendigt at rulle.

Rullebjælke er af to typer: Vandret og lodret rullebjælke som vist i nedenstående skærmbillede.

Rul i selen

For at rulle ved hjælp af Selenium kan du bruge JavaScriptExecutor-interface, der hjælper med at udføre JavaScript-metoder via Selenium Webdriver

Lær mere om JavaScriptExecutor

Syntaks:

JavascriptExecutor js = (JavascriptExecutor) driver;js.executeScript (script, argumenter);
  • Script - Dette er JavaScript, der skal udføres.
  • Argumenter - Det er argumenterne for scriptet. Det er valgfrit.

Selenium Script til at rulle ned på siden

Lad os se rulle ned ad en webside ved hjælp af selen webdriver med følgende 3 scenarier:

  • Scenarie 1: At rulle ned på websiden efter pixel.
  • Scenarie 2: At rulle ned på websiden efter elementets synlighed.
  • Scenarie 3: Ruller ned ad websiden i bunden af ​​siden.
  • Scenarie 4: Vandret rulle på websiden.

Scenarie 1: At rulle ned på websiden efter pixel.

Selen Script

import org.openqa.selenium.JavascriptExecutor;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;offentlig klasse ScrollByPixel {WebDriver driver;@Prøveoffentlig ugyldighed ByPixel () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");driver = ny ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) driver;// Start applikationendriver.get ("http://demo.guru99.com/test/guru99home/");// For at maksimere vinduet. Denne kode fungerer muligvis ikke med Selenium 3-krukker. Hvis script mislykkes, kan du fjerne linjen nedenfordriver.manage (). vindue (). maksimere ();// Dette ruller ned på siden med 1000 pixel lodretjs.executeScript ("window.scrollBy (0,1000)");}}

Scriptbeskrivelse : I ovenstående kode starter vi først den givne URL i Chrome-browseren. Rul derefter siden med 1000 pixels gennem executeScript. Javascript-metode ScrollBy () ruller websiden til det specifikke antal pixels.

Syntaksen for ScrollBy () -metoderne er:

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

x-pixels er tallet på x-aksen, det bevæger sig til venstre, hvis tallet er positivt, og det bevæger sig til højre, hvis antallet er negativt. y-pixels er tallet på y-aksen, det bevæger sig ned, hvis tallet er positivt, og det bevæger sig op, hvis tallet er negativt.

Eksempel:

js.executeScript ("window.scrollBy (0,1000)"); // Rul lodret ned med 1000 pixels 

Outputanalyse: Her er output, når du udfører ovenstående script.

Scenarie 2: At rulle ned på websiden efter elementets synlighed.

Selen Script

importer 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;offentlig klasse ScrollByVisibleElement {WebDriver driver;@Prøveoffentlig ugyldig ByVisibleElement () {System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");driver = ny ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) driver;// Start applikationendriver.get ("http://demo.guru99.com/test/guru99home/");// Find element efter linktekst og gem i variablen "Element"WebElement Element = driver.findElement (By.linkText ("Linux"));// Dette ruller siden, indtil elementet findesjs.executeScript ("argumenter [0] .scrollIntoView ();", Element);}}

Scriptbeskrivelse: I ovenstående kode starter vi først den givne url i Chrome-browseren. Rul derefter 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 ("argumenter [0] .scrollIntoView ();", Element); 

"argumenter [0]" betyder første indeks på siden, der starter ved 0.

Hvor et "Element" er lokaliseringen på websiden.

Outputanalyse: Her er output, når du udfører ovenstående script.

Scenarie 3: Ruller ned ad websiden i bunden af ​​siden.

Selen Script

import org.openqa.selenium.JavascriptExecutor;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;offentlig klasse ScrollByPage {WebDriver driver;@Prøveoffentlig ugyldighed ByPage () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");driver = ny ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) driver;// Start applikationendriver.get ("http://demo.guru99.com/test/guru99home/");// Dette ruller websiden til slutningen.js.executeScript ("window.scrollTo (0, document.body.scrollHeight)");}}

Scriptbeskrivelse: I ovenstående kode starter vi først den givne url i Chrome-browseren. Rul derefter til bunden af ​​siden. Javascript-metode scrollTo () rul til slutningen af ​​siden.

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

"document.body.scrollHeight" returnerer hele kroppens højde, dvs. webside.

Outputanalyse: Her er output, når du udfører ovenstående script.

Scenarie 4: Vandret rulle på websiden.

Selen Script

importer 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;offentlig klasse HorizontalScroll {WebDriver driver;@Prøveoffentlig ugyldighed ScrollHorizontally () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");driver = ny ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) driver;// Start applikationendriver.get ("http://demo.guru99.com/test/guru99home/scrolling.html");WebElement Element = driver.findElement (By.linkText ("VBScript"));// Dette vil rulle siden vandret, indtil elementet findesjs.executeScript ("argumenter [0] .scrollIntoView ();", Element);}}

Scriptbeskrivelse: 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 ("argumenter [0] .scrollIntoView ();", Element);

Outputanalyse: Her er output, når du udfører ovenstående script.

Resumé

  • I ovenstående tutorial illustrerer vi websidens rulle gennem forskellige scenarier.
  • I det første scenarie viste vi rulle ned på side for pixel.
  • I det andet scenario viste vi rulle ned på siden, indtil elementet er synligt.
  • I det tredje scenario viste vi rulle ned på siden nederst på siden.
  • I det fjerde scenario illustreret den vandrette rulle på websiden.