Come scorrere la pagina verso il basso o verso l'alto Selenium Webdriver
Scorri dentro Selenium
Per scorrere utilizzando Selenium, Puoi usare JavaInterfaccia ScriptExecutor che aiuta ad eseguire JavaMetodi di script tramite Selenium Webdriver
Sintassi:
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript(Script,Arguments);
- Script – Questo è il JavaScript che deve essere eseguito.
- Argomenti – Sono gli argomenti dello script. È facoltativo.
Selenium Script per scorrere la pagina verso il basso
Vediamo come scorrere una pagina web utilizzando il webdriver Selenium con i seguenti 4 scenari:
- Scenario 1: scorrere la pagina Web verso il basso per pixel.
- Scenario 2: scorrere verso il basso la pagina Web in base alla visibilità dell'elemento.
- Scenario 3: scorrere la pagina Web nella parte inferiore della pagina.
- Scenario 4: scorrimento orizzontale della pagina web.
Scenario 1: scorrere la pagina Web verso il basso per pixel.
Selenium Copione
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("https://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)"); } }
Copione Descriptione: Nel codice sopra innanzitutto lanciamo l'URL indicato nel browser Chrome. Successivamente, scorri la pagina di 1000 pixel tramite executiveScript. Javascript il metodo ScrollBy() scorre la pagina Web fino al numero specifico di pixel.
La sintassi dei metodi ScrollBy() è:
executeScript("window.scrollBy(x-pixels,y-pixels)");
x-pixel è il numero sull'asse x, si sposta a sinistra se il numero è positivo e si sposta a destra se il numero è negativo .y-pixel è il numero sull'asse y, si sposta verso il basso se il numero è positivo e si sposta verso l'alto se il numero è negativo.
Esempio:
js.executeScript("window.scrollBy(0,1000)"); //Scroll vertically down by 1000 pixels
Analisi dei risultati: Ecco l'output quando esegui lo script precedente.
Scenario 2: scorrere verso il basso la pagina Web in base alla visibilità dell'elemento.
Selenium Copione
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("https://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); } }
Copione Descriptione: Nel codice sopra, lanciamo prima l'URL indicato nel browser Chrome. Successivamente, scorri la pagina finché l'elemento menzionato non è visibile nella pagina corrente. Javascript il metodo scrollIntoView() scorre la pagina finché l'elemento menzionato non è completamente visibile:
js.executeScript("arguments[0].scrollIntoView();",Element );
"argomenti[0]" indica il primo indice della pagina che inizia da 0.
Dove un “Elemento” è il localizzatore sulla pagina web.
Analisi dei risultati: Ecco l'output quando esegui lo script precedente.
Scenario 3: scorrere la pagina Web nella parte inferiore della pagina.
Selenium Copione
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("https://demo.guru99.com/test/guru99home/"); //This will scroll the web page till end. js.executeScript("window.scrollTo(0, document.body.scrollHeight)"); } }
Copione Descriptione: Nel codice sopra, lanciamo prima l'URL indicato nel browser Chrome. Successivamente, scorri fino alla fine della pagina. Javascript metodo scrollTo() scorre fino alla fine della pagina.
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
"document.body.scrollHeight" restituisce l'altezza completa del corpo, ovvero della pagina web.
Analisi dei risultati: Ecco l'output quando esegui lo script precedente.
Scenario 4: scorrimento orizzontale della pagina web
Selenium Copione
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("https://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); } }
Copione Descriptione: Nel codice sopra, lanciamo prima l'URL indicato nel browser Chrome. Successivamente, scorri la pagina orizzontalmente finché l'elemento menzionato non è visibile nella pagina corrente. Javascript il metodo scrollIntoView() scorre la pagina finché l'elemento menzionato non è completamente visibile:
js.executeScript("arguments[0].scrollIntoView();",Element );
Analisi dei risultati: Ecco l'output quando esegui lo script precedente.
Scopri JavaScriptExecutor
Cos'è una barra di scorrimento?
Una barra di scorrimento consente di spostarsi sullo schermo in direzione orizzontale o verticale se lo scorrimento della pagina corrente non si adatta all'area visibile dello schermo. Viene utilizzato per spostare la finestra su e giù.
Selenium Webdriver non richiede lo scorrimento per eseguire azioni poiché manipola il DOM. Ma in alcune pagine web gli elementi diventano visibili solo dopo che l'utente li ha scorti. In questi casi potrebbe essere necessario lo scorrimento.
La barra di scorrimento è di due tipi: Orizzontale e verticale barra di scorrimento come mostrato nello screenshot seguente.
Sintesi
- Nel tutorial sopra, illustriamo lo scorrimento della pagina web attraverso diversi scenari.
- Nel primo scenario, abbiamo mostrato lo scorrimento verso il basso pagina per pixel.
- Nel secondo scenario, abbiamo mostrato lo scorrimento verso il basso della pagina fino alla visibilità dell'elemento.
- Nel terzo scenario, abbiamo mostrato lo scorrimento verso il basso della pagina in fondo alla pagina.
- Nel quarto scenario, illustrato lo scorrimento orizzontale della pagina web.