Comment faire défiler la page vers le bas ou vers le haut dans Selenium Webdriver

Faites défiler dans le sélénium

Pour faire défiler à l'aide de Selenium, vous pouvez utiliser l'interface JavaScriptExecutor qui permet d'exécuter des méthodes JavaScript via Selenium Webdriver.

syntaxe:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • Script – Il s'agit du 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 en utilisant le pilote Web Selenium avec following 4 scénarios :

  • 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.

Script de sélénium

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)");
    }
}

Description du script: 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. La méthode Javascript 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.

Mise en situation :

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.

Faites 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.

Script de sélénium

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);
    }
}

Description du scénario : 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. La méthode Javascript scrollIntoView() fait défiler la page jusqu'à ce que l'élément mentionné soit bien 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.

Faites défiler la page Web selon la visibilité de l'élément

Scénario 3 : Pour faire défiler la page Web en bas de la page.

Script de sélénium

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)");
    }
}

Description du scénario : 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. La méthode Javascript 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.

Faites défiler la page Web en bas de la page

Scénario 4 : Défilement horizontal sur la page Web

Script de sélénium

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);
    }
}

Description du scénario : 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. La méthode Javascript scrollIntoView() fait défiler la page jusqu'à ce que l'élément mentionné soit bien visible :

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

Analyse des résultats : Voici le résultat lorsque vous exécutez le script ci-dessus.

Défilement horizontal sur la page Web

En savoir plus sur Exécuteur JavaScript

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.

Barre de défilement

Barre de défilement

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.