Cómo desplazarse hacia abajo o hacia arriba en la página Selenium controlador web

⚡ Resumen inteligente

Desplazarse por una página en Selenium WebDriver utiliza el JavascriptInterfaz del ejecutor para ejecutar JavaComandos de desplazamiento mediante scripts, ya que WebDriver manipula el DOM directamente. Cuatro escenarios prácticos abarcan el desplazamiento píxel a píxel, a un elemento específico, al final de la página y horizontalmente.

  • 📜 JavascriptEjecutor: Ron JavaComandos de desplazamiento del script a través de Selenium Controlador web.
  • 🔢 Desplazamiento por píxeles: window.scrollBy(x,y) desplaza la página un número determinado de píxeles.
  • 🎯 Desplácese hasta el elemento: scrollIntoView() desplaza el elemento hasta que el elemento de destino sea completamente visible.
  • ⬇️ Desplácese hacia abajo: scrollTo con document.body.scrollHeight llega al final de la página.
  • ↔️ Desplazamiento horizontal: scrollIntoView también se desplaza lateralmente hacia elementos que están fuera de la pantalla.
  • 🧭 Conceptos básicos de la barra de desplazamiento: Al desplazarse por la página, se muestran los elementos que solo se cargan cuando entran en la vista.

Desplácese hacia abajo o hacia arriba en la página. Selenium Controlador web

Desplácese hacia adentro Selenium

Para desplazarse usando Selenium, puedes usar JavaInterfaz ScriptExecutor que ayuda a ejecutar JavaMétodos de script a través de Selenium controlador web

Sintaxis:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • Guión – Este es el JavaScript que necesita ejecutarse.
  • Argumentos: son los argumentos del guión. Es opcional.

¿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 mientras manipula DOM. Pero en determinadas páginas web, los elementos sólo se vuelven visibles una vez que el usuario se ha desplazado hasta ellos. En tales casos, puede ser necesario desplazarse.

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

barra de desplazamiento

barra de desplazamiento

Selenium Script para desplazarse hacia abajo en la página

Veamos cómo desplazarse hacia abajo en una página web usando el controlador web Selenium con los siguientes 4 escenarios:

  • Escenario 1: desplazarse hacia abajo en la página web por píxel.
  • Escenario 2: Desplazarse hacia abajo en la página web según 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;
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)");
    }
}

Script Description: En el código anterior, primero lanzamos el dado URL en el navegador Chrome. A continuación, desplácese por la página 1000 píxeles a través de executeScript. Javascript El método ScrollBy() desplaza la página web hasta el número específico de píxeles.

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

executeScript("window.scrollBy(x-pixels,y-pixels)");

Los píxeles x son el número en el eje x, se mueven hacia la izquierda si el número es positivo y se mueven hacia la derecha si el número es negativo. Los píxeles y son el número en el eje y, se mueven 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)"); //Scroll vertically down by 1000 pixels

Análisis de salida: Aquí está el resultado cuando ejecuta el script anterior.

Desplácese hacia abajo en la página web por píxel

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

Selenium Script

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

Script Description: En el código anterior, primero iniciamos la URL proporcionada 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. Javascript El método scrollIntoView() desplaza la página hasta que el elemento mencionado esté a la vista:

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

“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á el resultado cuando ejecuta el script anterior.

 Desplácese hacia abajo en la página web según la visibilidad del elemento

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

Script Description: En el código anterior, primero iniciamos la URL proporcionada en el navegador Chrome. A continuación, desplácese hasta el final de la página. Javascript método scrollTo() desplazarse 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á el resultado cuando ejecuta el script anterior.

Desplácese hacia abajo en la página web en la parte inferior de la página

Escenario 4: desplazamiento horizontal en la página web

Selenium Script

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

Script Description: En el código anterior, primero iniciamos la URL proporcionada 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. Javascript El método scrollIntoView() desplaza la página hasta que el elemento mencionado esté a la vista:

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

Análisis de salida: Aquí está el resultado cuando ejecuta el script anterior.

Desplazamiento horizontal en la página web

Obtenga más información sobre JavaEjecutor de secuencias de comandos

Preguntas Frecuentes

Utilice un valor negativo en píxeles con window.scrollBy; por ejemplo, js.executeScript con window.scrollBy(0,-1000). El valor negativo en el eje Y desplaza la página hacia arriba, a diferencia de un valor positivo que la desplaza hacia abajo.

Sí. Puede enviar Keys.PAGE_DOWN, Keys.END o teclas de flecha a un elemento, o utilizar la clase Actions en Selenium 4. JavascriptEl albacea sigue siendo la opción más flexible.

Los navegadores solo capturan la parte visible de la página, por lo que los scripts se desplazan por ella, capturan secciones y las unen. El desplazamiento también activa la carga diferida de imágenes y contenido antes de la captura de pantalla.

Sí. Los asistentes de IA generan fragmentos de código scrollBy, scrollIntoView y scrollTo a partir de instrucciones simples, y explican las operaciones matemáticas de los píxeles. RevRevise los localizadores y las condiciones de espera antes de ejecutarlos en su suite.

Las herramientas basadas en IA detectan cuándo deja de cargarse el contenido nuevo, ajustan la profundidad de desplazamiento dinámicamente y esperan de forma inteligente a que aparezcan los elementos. Esto automatiza las pruebas de feeds de desplazamiento infinito sin necesidad de contar píxeles de forma fija.

scrollBy desplaza la página un número fijo de píxeles desde la posición actual. scrollIntoView desplaza la página hasta que un elemento específico sea visible. Utilice scrollBy para la distancia y scrollIntoView para seleccionar elementos.

Resumir este post con: