Cum să derulați în jos sau în sus în pagina Selenium Webdriver
Derulează Selenium
Pentru a derula folosind Selenium, Aveți posibilitatea să utilizați JavaInterfață ScriptExecutor care ajută la execuție JavaMetode de script prin Selenium Webdriver
Sintaxă:
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript(Script,Arguments);
- Script – Acesta este JavaScript care trebuie executat.
- Argumente – Sunt argumentele pentru scenariu. Este optional.
Selenium Script pentru a derula în jos în pagină
Să vedem derularea în jos a unei pagini web utilizând driverul web selenium cu următoarele 4 scenarii:
- Scenariul 1: Pentru a derula în jos pagina web cu pixel.
- Scenariul 2: Pentru a derula în jos pagina web în funcție de vizibilitatea elementului.
- Scenariul 3: Pentru a derula în jos pagina web din partea de jos a paginii.
- Scenariul 4: Defilare orizontală pe pagina web.
Scenariul 1: Pentru a derula în jos pagina web cu pixel.
Selenium Scenariu
import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.annotations.Test; public class ScrollByPixel { WebDriver driver; @Test public void ByPixel() { System.setProperty("webdriver.chrome.driver", "E://Selenium//Selenium_Jars//chromedriver.exe"); driver = new ChromeDriver(); JavascriptExecutor js = (JavascriptExecutor) driver; // Launch the application driver.get("http://demo.guru99.com/test/guru99home/"); //To maximize the window. This code may not work with Selenium 3 jars. If script fails you can remove the line below driver.manage().window().maximize(); // This will scroll down the page by 1000 pixel vertical js.executeScript("window.scrollBy(0,1000)"); } }
Scenariu Description: În codul de mai sus lansăm mai întâi adresa URL dată în browserul Chrome. Apoi, derulați pagina cu 1000 de pixeli prin executeScript. Javascript metoda ScrollBy() derulează pagina web la numărul specific de pixeli.
Sintaxa metodelor ScrollBy() este:
executeScript("window.scrollBy(x-pixels,y-pixels)");
x-pixeli este numărul de pe axa x, se deplasează la stânga dacă numărul este pozitiv și se deplasează la dreapta dacă numărul este negativ. y-pixels este numărul de pe axa y, se deplasează în jos dacă numărul este pozitiv și se mută în sus dacă numărul este negativ.
Exemplu:
js.executeScript("window.scrollBy(0,1000)"); //Scroll vertically down by 1000 pixels
Analiza rezultatelor: Iată rezultatul când executați scriptul de mai sus.
Scenariul 2: Pentru a derula în jos pagina web în funcție de vizibilitatea elementului.
Selenium Scenariu
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; public class ScrollByVisibleElement { WebDriver driver; @Test public void ByVisibleElement() { System.setProperty("webdriver.chrome.driver", "G://chromedriver.exe"); driver = new ChromeDriver(); JavascriptExecutor js = (JavascriptExecutor) driver; //Launch the application driver.get("http://demo.guru99.com/test/guru99home/"); //Find element by link text and store in variable "Element" WebElement Element = driver.findElement(By.linkText("Linux")); //This will scroll the page till the element is found js.executeScript("arguments[0].scrollIntoView();", Element); } }
Scenariu Description: În codul de mai sus, lansăm mai întâi adresa URL dată în browserul Chrome. Apoi, derulați pagina până când elementul menționat este vizibil pe pagina curentă. Javascript metoda scrollIntoView() derulează pagina până când elementul menționat este în vizualizare completă:
js.executeScript("arguments[0].scrollIntoView();",Element );
„argumente[0]” înseamnă primul index al paginii care începe la 0.
Unde un „Element” este localizatorul de pe pagina web.
Analiza rezultatelor: Iată rezultatul când executați scriptul de mai sus.
Scenariul 3: Pentru a derula în jos pagina web din partea de jos a paginii.
Selenium Scenariu
import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.annotations.Test; public class ScrollByPage { WebDriver driver; @Test public void ByPage() { System.setProperty("webdriver.chrome.driver", "E://Selenium//Selenium_Jars//chromedriver.exe"); driver = new ChromeDriver(); JavascriptExecutor js = (JavascriptExecutor) driver; // Launch the application driver.get("http://demo.guru99.com/test/guru99home/"); //This will scroll the web page till end. js.executeScript("window.scrollTo(0, document.body.scrollHeight)"); } }
Scenariu Description: În codul de mai sus, lansăm mai întâi adresa URL dată în browserul Chrome. Apoi, derulați până în partea de jos a paginii. Javascript metoda scrollTo() derulează până la sfârșitul paginii.
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
„document.body.scrollHeight” returnează înălțimea completă a corpului, adică pagina web.
Analiza rezultatelor: Iată rezultatul când executați scriptul de mai sus.
Scenariul 4: Defilare orizontală pe pagina web
Selenium Scenariu
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; public class HorizontalScroll { WebDriver driver; @Test public void ScrollHorizontally() { System.setProperty("webdriver.chrome.driver", "E://Selenium//Selenium_Jars//chromedriver.exe"); driver = new ChromeDriver(); JavascriptExecutor js = (JavascriptExecutor) driver; // Launch the application driver.get("http://demo.guru99.com/test/guru99home/scrolling.html"); WebElement Element = driver.findElement(By.linkText("VBScript")); //This will scroll the page Horizontally till the element is found js.executeScript("arguments[0].scrollIntoView();", Element); } }
Scenariu Description: În codul de mai sus, lansăm mai întâi adresa URL dată în browserul Chrome. Apoi, derulați pagina pe orizontală până când elementul menționat este vizibil pe pagina curentă. Javascript metoda scrollIntoView() derulează pagina până când elementul menționat este în vizualizare completă:
js.executeScript("arguments[0].scrollIntoView();",Element );
Analiza rezultatelor: Iată rezultatul când executați scriptul de mai sus.
Aflați mai multe despre JavaScriptExecutor
Ce este o bară de derulare?
O bară de defilare vă permite să vă deplasați în jurul ecranului în direcție orizontală sau verticală dacă derularea paginii curente nu se potrivește zonei vizibile a ecranului. Este folosit pentru a muta fereastra în sus și în jos.
Selenium Webdriver nu necesită derulare pentru a efectua acțiuni, deoarece manipulează DOM. Însă în anumite pagini web, elementele devin vizibile doar după ce utilizatorul a derulat la ele. În astfel de cazuri, poate fi necesară derularea.
Bara de defilare este de două tipuri: Orizontală si vertical bara de derulare, așa cum se arată în captura de ecran de mai jos.
Rezumat
- În tutorialul de mai sus, ilustrăm derularea paginii web prin diferite scenarii.
- În primul scenariu, am arătat derularea în jos, pagină cu pixel.
- În al doilea scenariu, am arătat derularea în jos a paginii până la vizibilitatea elementului.
- În al treilea scenariu, am afișat derularea în jos a paginii în partea de jos a paginii.
- În cel de-al patrulea scenariu, ilustrat derularea orizontală pe pagina web.