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

Table des matières:

Anonim

Qu'est-ce qu'une barre de défilement?

Une barre de défilement vous permet de vous déplacer autour de l'écran dans le sens horizontal ou vertical si le défilement de la page actuelle ne rentre pas dans 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 DOM. Mais dans certaines pages Web, les éléments ne deviennent visibles qu'une fois que l'utilisateur y a fait défiler. Dans de tels cas, le défilement peut être nécessaire.

La barre de défilement est de deux types: la barre de défilement horizontale et verticale , comme indiqué dans la capture d'écran ci-dessous.

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

En savoir plus sur JavaScriptExecutor

Syntaxe:

JavascriptExecutor js = (JavascriptExecutor) pilote;js.executeScript (Script, Arguments);
  • Script - Il s'agit du JavaScript qui doit s'exécuter.
  • Arguments - Ce sont les arguments du script. C'est facultatif.

Script Selenium pour faire défiler la page

Voyons le défilement d'une page Web à l'aide du pilote Web sélénium avec les 3 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.

Script 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 {Pilote WebDriver;@Testpublic void ByPixel () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");pilote = nouveau ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) pilote;// Lancez l'applicationdriver.get ("http://demo.guru99.com/test/guru99home/");// Pour agrandir la fenêtre. Ce code peut ne pas fonctionner avec les pots Selenium 3. Si le script échoue, vous pouvez supprimer la ligne ci-dessousdriver.manage (). window (). maximiser ();// Cela fera défiler la page de 1000 pixels à la verticalejs.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 dans executeScript. 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)");

x-pixels est le nombre sur l'axe des x, il se déplace vers la gauche si le nombre est positif et il se déplace vers la droite si le nombre est négatif .y-pixels est le nombre sur l'axe des y, il se déplace vers le bas si le nombre est positif et il se déplace vers le haut si le nombre est négatif.

Exemple:

js.executeScript ("window.scrollBy (0,1000)"); // Faire défiler verticalement vers le bas de 1000 pixels 

Analyse de la sortie: Voici la sortie 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.

Script 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;classe publique ScrollByVisibleElement {Pilote WebDriver;@Testpublic void ByVisibleElement () {System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");pilote = nouveau ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) pilote;// Lancer l'applicationdriver.get ("http://demo.guru99.com/test/guru99home/");// Recherche élément par texte de lien et stockage dans la variable "Elément"Élément WebElement = driver.findElement (By.linkText ("Linux"));// Cela fera défiler la page jusqu'à ce que l'élément soit trouvéjs.executeScript ("arguments [0] .scrollIntoView ();", Element);}}

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 jusqu'à ce que l'élément mentionné soit visible sur la page en cours. La méthode Javascript scrollIntoView () fait défiler la page jusqu'à ce que l'élément mentionné soit en pleine vue:

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 de la sortie: Voici la sortie lorsque vous exécutez le script ci-dessus.

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

Script 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 {Pilote WebDriver;@Testpublic void ByPage () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");pilote = nouveau ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) pilote;// Lancez l'applicationdriver.get ("http://demo.guru99.com/test/guru99home/");// Cela fera défiler la page Web jusqu'à la fin.js.executeScript ("window.scrollTo (0, document.body.scrollHeight)");}}

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 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 de la sortie: Voici la sortie lorsque vous exécutez le script ci-dessus.

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

Script 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 {Pilote WebDriver;@Testpublic void ScrollHorizontally () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");pilote = nouveau ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) pilote;// Lancez l'applicationdriver.get ("http://demo.guru99.com/test/guru99home/scrolling.html");Élément WebElement = driver.findElement (By.linkText ("VBScript"));// Cela fera défiler la page horizontalement jusqu'à ce que l'élément soit trouvéjs.executeScript ("arguments [0] .scrollIntoView ();", Element);}}

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 horizontalement jusqu'à ce que l'élément mentionné soit visible sur la page en cours. La méthode Javascript scrollIntoView () fait défiler la page jusqu'à ce que l'élément mentionné soit en pleine vue:

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

Analyse de la sortie: Voici la sortie lorsque vous exécutez le script ci-dessus.

Résumé

  • Dans le didacticiel 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 vers le bas page par pixel.
  • Dans le deuxième scénario, nous avons montré le défilement vers le bas de la page jusqu'au visible de l'élément.
  • Dans le troisième scénario, nous avons montré le défilement vers le bas de la page en bas de la page.
  • Dans le quatrième scénario, illustré le défilement horizontal sur la page Web.