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

⚡ Résumé intelligent

Défilement d'une page dans Selenium WebDriver utilise le JavascriptInterface d'exécution pour exécuter JavaLes commandes de défilement par script sont nécessaires, car WebDriver manipule directement le DOM. Quatre scénarios pratiques couvrent le défilement pixel par pixel, jusqu'à un élément, jusqu'en bas de la page et horizontalement.

  • (I.e. JavascriptExécuteur: Fonctionne JavaScript défile les commandes à travers Selenium Pilote Web.
  • (I.e. Défilement pixel par pixel : window.scrollBy(x,y) déplace la page d'un nombre défini de pixels.
  • (I.e. Défilez jusqu'à l'élément : La fonction scrollIntoView() fait défiler la page jusqu'à ce que l'élément cible soit entièrement visible.
  • ⬇️ Défilez vers le bas : La propriété scrollTo avec document.body.scrollHeight atteint la fin de la page.
  • ↔️ Défilement horizontal : scrollIntoView se déplace également latéralement vers les éléments hors écran.
  • 🧭 Principes de base des barres de défilement : Le défilement révèle des éléments qui ne se chargent que lorsqu'ils apparaissent à l'écran.

Défilez vers le bas ou vers le haut de la page 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.

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

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 CMSDans le code ci-dessus, nous lançons d'abord l'élément donné. URL Dans le navigateur Chrome, faites défiler la page de 1000 pixels via executeScript. 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.

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.

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.

 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.

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.

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

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.

Défilement horizontal sur la page Web

En savoir plus sur le JavaExécuteur de script

FAQ

Utilisez une valeur négative en pixels avec `window.scrollBy`, par exemple `js.executeScript` avec `window.scrollBy(0,-1000)`. Une valeur négative sur l'axe Y fait défiler la page vers le haut, contrairement à une valeur positive qui la fait défiler vers le bas.

Oui. Vous pouvez envoyer Keys.PAGE_DOWN, Keys.END ou les touches fléchées à un élément, ou utiliser la classe Actions dans Selenium 4. JavascriptL'exécuteur testamentaire reste l'option la plus flexible.

Les navigateurs ne capturent que la partie visible à l'écran ; les scripts font donc défiler la page, capturent des sections et les assemblent. Le défilement déclenche également le chargement différé des images et du contenu avant la capture d'écran.

Oui. Les assistants IA produisent des extraits de code scrollBy, scrollIntoView et scrollTo à partir d'instructions simples, et expliquent les calculs au niveau des pixels. RevConsultez les localisateurs et les conditions d'attente avant de les exécuter dans votre suite.

Des outils basés sur l'IA détectent l'arrêt du chargement du contenu, ajustent dynamiquement la profondeur de défilement et attendent intelligemment la fin du chargement des éléments. Cela automatise les tests des flux à défilement infini sans avoir à coder en dur le nombre de pixels.

La méthode `scrollBy` déplace la page d'un nombre fixe de pixels à partir de sa position actuelle. La méthode `scrollIntoView` fait défiler la page jusqu'à ce qu'un élément spécifique soit visible. Utilisez `scrollBy` pour le déplacement et `scrollIntoView` pour cibler des éléments.

Résumez cet article avec :