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.

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

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.