Cómo desplazarse hacia abajo o hacia arriba en una página en Selenium Webdriver

Tabla de contenido:

Anonim

¿Qué es una barra de desplazamiento?

Una barra de desplazamiento le permite moverse por la pantalla en dirección horizontal o vertical si el desplazamiento de la página actual no se ajusta al área visible de la pantalla. Se utiliza para mover la ventana hacia arriba y hacia abajo.

Selenium Webdriver no requiere desplazamiento para realizar acciones ya que manipula DOM. Pero en ciertas páginas web, los elementos solo se vuelven visibles una vez que el usuario se ha desplazado hacia ellos. En tales casos, puede ser necesario desplazarse.

La barra de desplazamiento es de dos tipos: barra de desplazamiento horizontal y vertical , como se muestra en la siguiente captura de pantalla.

Desplazarse en selenio

Para desplazarse usando Selenium, puede usar la interfaz JavaScriptExecutor que ayuda a ejecutar métodos JavaScript a través de Selenium Webdriver

Más información sobre JavaScriptExecutor

Sintaxis:

JavascriptExecutor js = (JavascriptExecutor) controlador;js.executeScript (secuencia de comandos, argumentos);
  • Script: este es el JavaScript que debe ejecutarse.
  • Argumentos: son los argumentos del guión. Es opcional.

Selenium Script para desplazarse hacia abajo en la página

Veamos el desplazamiento hacia abajo de una página web usando el controlador web de selenio con los siguientes 3 escenarios:

  • Escenario 1: Desplazarse hacia abajo en la página web por píxel.
  • Escenario 2: Desplazarse hacia abajo en la página web por la visibilidad del elemento.
  • Escenario 3: Desplazarse hacia abajo en la página web en la parte inferior de la página.
  • Escenario 4: Desplazamiento horizontal en la página web.

Escenario 1: Desplazarse hacia abajo en la página web por píxel.

Selenium Script

import org.openqa.selenium.JavascriptExecutor;importar org.openqa.selenium.WebDriver;importar org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;public class ScrollByPixel {Controlador WebDriver;@Pruebapublic void ByPixel () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");controlador = nuevo ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) controlador;// Iniciar la aplicaciondriver.get ("http://demo.guru99.com/test/guru99home/");// Para maximizar la ventana. Es posible que este código no funcione con los frascos de Selenium 3. Si el script falla, puede eliminar la línea a continuacióndriver.manage (). window (). maximizar ();// Esto se desplazará hacia abajo en la página 1000 píxeles en verticaljs.executeScript ("window.scrollBy (0,1000)");}}

Descripción del script : En el código anterior, primero iniciamos la URL dada en el navegador Chrome. A continuación, desplácese por la página 1000 píxeles a través de executeScript. El método de JavaScript ScrollBy () desplaza la página web al número específico de píxeles.

La sintaxis de los métodos ScrollBy () es:

executeScript ("window.scrollBy (píxeles x, píxeles y)");

x-pixels es el número en el eje x, se mueve hacia la izquierda si el número es positivo y se mueve hacia la derecha si el número es negativo .y-pixels es el número en el eje y, se mueve hacia abajo si el número es positivo y se mueve hacia arriba si el número es negativo.

Ejemplo:

js.executeScript ("window.scrollBy (0,1000)"); // Desplácese verticalmente hacia abajo 1000 píxeles 

Análisis de salida: aquí está la salida cuando ejecuta el script anterior.

Escenario 2: Desplazarse hacia abajo en la página web por la visibilidad del elemento.

Selenium Script

import org.openqa.selenium.By;import org.openqa.selenium.JavascriptExecutor;importar org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;importar org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;public class ScrollByVisibleElement {Controlador WebDriver;@Pruebapublic void ByVisibleElement () {System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");controlador = nuevo ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) controlador;//Iniciar la aplicaciondriver.get ("http://demo.guru99.com/test/guru99home/");// Buscar el elemento por el texto del enlace y almacenarlo en la variable "Elemento"Elemento WebElement = driver.findElement (By.linkText ("Linux"));// Esto desplazará la página hasta que se encuentre el elementojs.executeScript ("argumentos [0] .scrollIntoView ();", Elemento);}}

Descripción del script: en el código anterior, primero iniciamos la URL dada en el navegador Chrome. A continuación, desplácese por la página hasta que el elemento mencionado sea visible en la página actual. El método de JavaScript scrollIntoView () desplaza la página hasta que el elemento mencionado está a la vista completa:

js.executeScript ("argumentos [0] .scrollIntoView ();", Elemento); 

"argumentos [0]" significa el primer índice de la página que comienza en 0.

Donde un "Elemento" es el localizador en la página web.

Análisis de salida: aquí está la salida cuando ejecuta el script anterior.

Escenario 3: Desplazarse hacia abajo en la página web en la parte inferior de la página.

Selenium Script

import org.openqa.selenium.JavascriptExecutor;importar org.openqa.selenium.WebDriver;importar org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;public class ScrollByPage {Controlador WebDriver;@Pruebapublic void ByPage () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");controlador = nuevo ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) controlador;// Iniciar la aplicaciondriver.get ("http://demo.guru99.com/test/guru99home/");// Esto desplazará la página web hasta el final.js.executeScript ("window.scrollTo (0, document.body.scrollHeight)");}}

Descripción del script: en el código anterior, primero iniciamos la URL dada en el navegador Chrome. A continuación, desplácese hasta el final de la página. El método Javascript scrollTo () desplaza hasta el final de la página.

js.executeScript ("window.scrollTo (0, document.body.scrollHeight)"); 

"document.body.scrollHeight" devuelve la altura completa del cuerpo, es decir, la página web.

Análisis de salida: aquí está la salida cuando ejecuta el script anterior.

Escenario 4: Desplazamiento horizontal en la página web.

Selenium Script

import org.openqa.selenium.By;import org.openqa.selenium.JavascriptExecutor;importar org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;importar org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;public class HorizontalScroll {Controlador WebDriver;@Pruebapublic void ScrollHorizontally () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");controlador = nuevo ChromeDriver ();JavascriptExecutor js = (JavascriptExecutor) controlador;// Iniciar la aplicaciondriver.get ("http://demo.guru99.com/test/guru99home/scrolling.html");Elemento WebElement = driver.findElement (By.linkText ("VBScript"));// Esto desplazará la página horizontalmente hasta que se encuentre el elementojs.executeScript ("argumentos [0] .scrollIntoView ();", Elemento);}}

Descripción del script: en el código anterior, primero iniciamos la URL dada en el navegador Chrome. A continuación, desplácese por la página horizontalmente hasta que el elemento mencionado sea visible en la página actual. El método de JavaScript scrollIntoView () desplaza la página hasta que el elemento mencionado está a la vista completa:

js.executeScript ("argumentos [0] .scrollIntoView ();", Elemento);

Análisis de salida: aquí está la salida cuando ejecuta el script anterior.

Resumen

  • En el tutorial anterior, ilustramos el desplazamiento de la página web a través de diferentes escenarios.
  • En el primer escenario, mostramos el desplazamiento hacia abajo página por píxel.
  • En el segundo escenario, mostramos el desplazamiento hacia abajo de la página hasta el visible del elemento.
  • En el tercer escenario, mostramos el desplazamiento hacia abajo de la página en la parte inferior de la página.
  • En el cuarto escenario, ilustró el desplazamiento horizontal en la página web.