Kako se pomakniti navzdol ali navzgor po strani v programu Selenium Webdriver

Kazalo:

Anonim

Kaj je drsnik?

Drsna vrstica vam omogoča premikanje po zaslonu v vodoravni ali navpični smeri, če trenutno pomikanje strani ne ustreza vidnemu območju zaslona. Uporablja se za premikanje okna gor in dol.

Selenium Webdriver za izvajanje dejanj ne zahteva drsenja, saj manipulira z DOM. Toda na nekaterih spletnih straneh so elementi vidni šele, ko se uporabnik pomakne do njih. V takih primerih je morda potrebno pomikanje.

Drsna vrstica je dve vrsti: vodoravna in navpična drsna vrstica, kot je prikazano na spodnjem posnetku zaslona.

Pomaknite se po selenu

Za pomikanje s pomočjo selena lahko uporabite vmesnik JavaScriptExecutor, ki pomaga izvajati metode JavaScript prek Selenium Webdriver

Preberite več o JavaScriptExecutor

Sintaksa:

JavascriptExecutor js = (JavascriptExecutor) gonilnik;js.executeScript (skript, argumenti);
  • Skripta - to je JavaScript, ki ga je treba zagnati.
  • Argumenti - to so argumenti v skriptu. Neobvezno.

Selenium Script za pomikanje po strani navzdol

Poglejmo, kako se pomaknite po spletni strani s pomočjo selenovega spletnega pogona v naslednjih treh scenarijih:

  • 1. scenarij: za pomikanje po spletni sliki navzdol za slikovne pike.
  • 2. scenarij: za pomikanje po strani navzdol glede na vidnost elementa.
  • 3. scenarij: za pomikanje po spletni strani na dnu strani.
  • 4. scenarij: vodoravno drsenje po spletni strani.

1. scenarij: za pomikanje po spletni sliki navzdol za slikovne pike.

Selen Script

import org.openqa.selenium.JavascriptExecutor;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;javni razred ScrollByPixel {Gonilnik WebDriver;@Testjavna void ByPixel () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");gonilnik = nov ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) gonilnik;// Zaženite aplikacijodriver.get ("http://demo.guru99.com/test/guru99home/");// Za povečanje okna. Ta koda morda ne bo delovala pri kozarcih Selenium 3. Če skript ne uspe, lahko spodnjo vrstico odstranitedriver.manage (). window (). maximize ();// S tem se bo stran pomaknila navpično za 1000 slikovnih pikjs.executeScript ("window.scrollBy (0,1000)");}}

Opis skripta : V zgornji kodi najprej zaženemo dani URL v brskalniku Chrome. Nato pomaknite stran za 1000 slikovnih pik skozi executeScript. Javascript metoda ScrollBy () se pomakne na spletno stran do določenega števila slikovnih pik.

Sintaksa metod ScrollBy () je:

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

x-pixels je število na osi x, če je število pozitivno, se premakne v levo in če je število negativno. y-pixels je število na osi y, premakne se navzdol, če je število pozitiven in se pomakne navzgor, če je število negativno.

Primer:

js.executeScript ("window.scrollBy (0,1000)"); // Pomaknite se navpično navzdol za 1000 slikovnih pik 

Analiza izhodnih rezultatov: Tu je izhod, ko izvedete zgornji skript.

2. scenarij: za pomikanje po strani navzdol glede na vidnost elementa.

Selen Script

uvoz org.openqa.selenium.By;import org.openqa.selenium.JavascriptExecutor;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.WebElement;uvoz org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;javni razred ScrollByVisibleElement {Gonilnik WebDriver;@Testjavna void ByVisibleElement () {System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");gonilnik = nov ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) gonilnik;// Zaženite aplikacijodriver.get ("http://demo.guru99.com/test/guru99home/");// Poiščimo element po besedilu povezave in shranimo v spremenljivko "Element"WebElement Element = driver.findElement (By.linkText ("Linux"));// To bo pomikalo stran, dokler element ne bo najdenjs.executeScript ("argumenti [0] .scrollIntoView ();", Element);}}

Opis skripta: V zgornji kodi najprej zaženemo dani URL v brskalniku Chrome. Nato se pomaknite po strani, dokler omenjeni element ni viden na trenutni strani. Metoda Javascript scrollIntoView () se pomika po strani, dokler ni omenjeni element v polnem pogledu:

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

"argumenti [0]" pomeni prvi indeks strani, ki se začne na 0.

Kjer je "Element" lokator na spletni strani.

Analiza izhodnih rezultatov: Tu je izhod, ko izvedete zgornji skript.

3. scenarij: za pomikanje po spletni strani na dnu strani.

Selen Script

import org.openqa.selenium.JavascriptExecutor;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;javni razred ScrollByPage {Gonilnik WebDriver;@Testjavna void ByPage () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");gonilnik = nov ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) gonilnik;// Zaženite aplikacijodriver.get ("http://demo.guru99.com/test/guru99home/");// S tem se bo spletna stran pomaknila do konca.js.executeScript ("window.scrollTo (0, document.body.scrollHeight)");}}

Opis skripta: V zgornji kodi najprej zaženemo dani URL v brskalniku Chrome. Nato se pomaknite do dna strani. Javascript metoda scrollTo () se pomaknite do konca strani.

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

"document.body.scrollHeight" vrne celotno višino telesa, tj. spletne strani.

Analiza izhodnih rezultatov: Tu je izhod, ko izvedete zgornji skript.

4. scenarij: vodoravno drsenje po spletni strani.

Selen Script

uvoz org.openqa.selenium.By;import org.openqa.selenium.JavascriptExecutor;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.WebElement;uvoz org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;javni razred HorizontalScroll {Gonilnik WebDriver;@Testpublic void ScrollHorizontally () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");gonilnik = nov ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) gonilnik;// Zaženite aplikacijodriver.get ("http://demo.guru99.com/test/guru99home/scrolling.html");WebElement Element = driver.findElement (By.linkText ("VBScript"));// S tem se bo stran pomaknila vodoravno, dokler element ne bo najdenjs.executeScript ("argumenti [0] .scrollIntoView ();", Element);}}

Opis skripta: V zgornji kodi najprej zaženemo dani URL v brskalniku Chrome. Nato se po strani pomaknite vodoravno, dokler omenjeni element ni viden na trenutni strani. Metoda Javascript scrollIntoView () se pomika po strani, dokler ni omenjeni element v polnem pogledu:

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

Analiza izhodnih rezultatov: Tu je izhod, ko izvedete zgornji skript.

Povzetek

  • V zgornji vadnici ponazorimo drsenje spletne strani skozi različne scenarije.
  • V prvem scenariju smo prikazali drsenje navzdol po strani za slikovne pike.
  • V drugem scenariju smo prikazali drsenje strani navzdol, dokler element ni viden.
  • V tretjem scenariju smo na dnu strani prikazali drsenje strani navzdol.
  • V četrtem scenariju je prikazano vodoravno drsenje na spletni strani.