Comment faire défiler la page vers le bas ou vers le haut dans Selenium Pilote Web
Faites défiler Selenium
Pour faire défiler en utilisant Selenium, Vous pouvez utiliser JavaInterface ScriptExecutor qui aide à exécuter JavaMéthodes de script via Selenium Pilote Web
syntaxe:
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript(Script,Arguments);
- Scénario – C'est le JavaScript qui doit être exécuté.
- Arguments – Ce sont les arguments du script. C'est facultatif.
Selenium Script pour faire défiler la page
Voyons comment faire défiler une page Web à l'aide du pilote Web Selenium avec les 4 scénarios suivants :
- Scénario 1 : Pour faire défiler la page Web par pixel.
- Scénario 2 : Faire défiler la page Web en fonction de la visibilité de l'élément.
- Scénario 3 : Pour faire défiler la page Web en bas de la page.
- Scénario 4 : Défilement horizontal sur la page Web.
Scénario 1 : Pour faire défiler la page Web par pixel.
Selenium scénario
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)"); } }
scénario Description CMS: Dans le code ci-dessus, nous lançons d'abord l'URL donnée dans le navigateur Chrome. Ensuite, faites défiler la page de 1000 pixels viaexecuteScript. Javascript La méthode ScrollBy() fait défiler la page Web jusqu'au nombre spécifique de pixels.
La syntaxe des méthodes ScrollBy() est :
executeScript("window.scrollBy(x-pixels,y-pixels)");
Les pixels x sont le nombre sur l'axe des x, il se déplace vers la gauche si le nombre est positif et vers la droite si le nombre est négatif. Les pixels y sont le nombre sur l'axe des y, il se déplace vers le bas si le nombre est négatif. positif et il monte si le nombre est négatif.
Exemple :
js.executeScript("window.scrollBy(0,1000)"); //Scroll vertically down by 1000 pixels
Analyse des résultats : Voici le résultat lorsque vous exécutez le script ci-dessus.
Scénario 2 : Faire défiler la page Web en fonction de la visibilité de l'élément.
Selenium scénario
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); } }
scénario Description: Dans le code ci-dessus, nous lançons d'abord l'URL donnée dans le navigateur Chrome. Ensuite, faites défiler la page jusqu'à ce que l'élément mentionné soit visible sur la page actuelle. Javascript La méthode scrollIntoView() fait défiler la page jusqu'à ce que l'élément mentionné soit entièrement visible :
js.executeScript("arguments[0].scrollIntoView();",Element );
« arguments[0] » signifie le premier index de la page commençant à 0.
Où un « Élément » est le localisateur sur la page Web.
Analyse des résultats : Voici le résultat lorsque vous exécutez le script ci-dessus.
Scénario 3 : Pour faire défiler la page Web en bas de la page.
Selenium scénario
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)"); } }
scénario Description : Dans le code ci-dessus, nous lançons d'abord l'URL donnée dans le navigateur Chrome. Ensuite, faites défiler jusqu'au bas de la page. Javascript La méthode scrollTo() fait défiler jusqu'à la fin de la page.
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
« document.body.scrollHeight » renvoie la hauteur complète du corps, c'est-à-dire de la page Web.
Analyse des résultats : Voici le résultat lorsque vous exécutez le script ci-dessus.
Scénario 4 : Défilement horizontal sur la page Web
Selenium scénario
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); } }
scénario Description : Dans le code ci-dessus, nous lançons d'abord l'URL donnée dans le navigateur Chrome. Ensuite, faites défiler la page horizontalement jusqu'à ce que l'élément mentionné soit visible sur la page actuelle. Javascript La méthode scrollIntoView() fait défiler la page jusqu'à ce que l'élément mentionné soit entièrement visible :
js.executeScript("arguments[0].scrollIntoView();",Element );
Analyse des résultats : Voici le résultat lorsque vous exécutez le script ci-dessus.
En savoir plus sur JavaExécuteur de script
Qu'est-ce qu'une barre de défilement ?
Une barre de défilement vous permet de vous déplacer sur l'écran dans le sens horizontal ou vertical si le défilement de la page actuelle ne correspond pas à la zone visible de l'écran. Il est utilisé pour déplacer la fenêtre de haut en bas.
Selenium Webdriver ne nécessite pas de défilement pour effectuer des actions car il manipule le DOM. Mais dans certaines pages Web, les éléments ne deviennent visibles qu’une fois que l’utilisateur les a parcourus. Dans de tels cas, un défilement peut être nécessaire.
La barre de défilement est de deux types : Horizontal et vertical barre de défilement comme indiqué dans la capture d'écran ci-dessous.
Résumé
- Dans le tutoriel ci-dessus, nous illustrons le défilement de la page Web à travers différents scénarios.
- Dans le premier scénario, nous avons montré le défilement page par pixel.
- Dans le deuxième scénario, nous avons montré le défilement de la page vers le bas jusqu'à ce que l'élément soit visible.
- Dans le troisième scénario, nous avons montré le défilement de la page en bas de la page.
- Dans le quatrième scénario, nous avons illustré le défilement horizontal sur la page Web.