Selenium es una popular herramienta de automatización basada en web de código abierto. La principal ventaja de usar selenium es que es compatible con todos los navegadores como Google Chrome, Microsoft Edge, Mozilla Firefox y Safari, funciona en todos los principales sistemas operativos y sus scripts están escritos en varios idiomas, es decir, Java, Python, JavaScript, C#, etc. este artículo, trabajaremos con Java y selenium para automatizar el desplazamiento de la página web.
El desplazamiento es una función importante para cualquier página web. Para desplazarse hacia abajo en las páginas web, usamos JavaScriptExecutor. javascriptexecutor es una interfaz que permite ejecutar métodos JavaScript desde scripts de Selenium.
Instalación: Para trabajar con JavaScriptExecutor, necesitábamos Java instalado en nuestro sistema y Selenium, un controlador web para el navegador, también un IDE para el editor de código.
- Eclipse IDE: antes de descargar también asegúrese de que su dispositivo tenga Java JDK. Si no tiene, instale Java se refiere a esto: ¿Cómo descargar e instalar Java para una máquina de 64 bits? E instale Eclipse IDE consultando este artículo Eclipse IDE para desarrolladores de Java
- Selenium: Descargue la última versión estable de Selenium aquí
- Controlador web: descargue el controlador web de Microsoft Edge según su versión aquí
Sintaxis:
- Ejecutor JavaScript
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("window.scrollBy(0,document.body.scrollHeight)", "");
- Desplácese hacia abajo hasta la parte inferior de la página:
window.scrollBy(0,document.body.scrollHeight)
Selenium ejecuta los comandos en Javascript con el método execute_script(). Para desplazarnos hasta el final de la página, tenemos que pasar (0, document.body.scrollHeight) como parámetros al método scrollBy().
Consideremos un caso de prueba en el que intentaremos automatizar los siguientes escenarios en el navegador Edge.
- Inicie el navegador Edge
- Maximiza el navegador.
- URL abierta: https://www.geeksforgeeks.org/
- Desplácese hasta la parte inferior de la página usando JavaScriptExecutor
Paso 1: establezca una propiedad del sistema «webdriver.edge.driver» en la ruta de su archivo EdgeDriver.exe e instancia una clase EdgeDriver.
Javascript
public class geeksforgeeks { public static void main(String args[]) { System.setProperty("webdriver.edge.driver", "C:\\Users\\ADMIN\\Documents\\Selenium\\msedgedriver.exe"); // Instantiate a EdgeDriver class. WebDriver driver = new EdgeDriver(); //Maximize the browser } }
Paso 2: Maximice la ventana: driver.manage().window().maximize() y abra el sitio geeksforgeeks.
Javascript
driver.manage().window().maximize(); // Launch Website driver.get("https://www.geeksforgeeks.org/");
Paso 3: Inicie el método javascriptexecutor y scroll para desplazarse hasta la parte inferior de la página.
Javascript
JavascriptExecutor js = (JavascriptExecutor) driver; //Scroll down till the bottom of the page js.executeScript("window.scrollBy(0,document.body.scrollHeight)");
Ejemplo: programa para desplazarse hacia abajo hasta la parte inferior de la página web usando Selenium:
Java
import org.openqa.selenium.WebDriver; import org.openqa.selenium.edge.EdgeDriver; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; public class geeksforgeeks { public static void main(String args[]) { System.setProperty("webdriver.edge.driver", "C:\\Users\\ADMIN\\Documents\\Selenium\\msedgedriver.exe"); // Instantiate a EdgeDriver class. WebDriver driver = new EdgeDriver(); //Maximize the browser driver.manage().window().maximize(); // Launch Website driver.get("https://www.geeksforgeeks.org/"); JavascriptExecutor js = (JavascriptExecutor) driver; //Scroll down till the bottom of the page js.executeScript("window.scrollBy(0,document.body.scrollHeight)"); } }
Producción:
El código anterior inicia el navegador Edge y navega a la página de geeksforgeeks, una vez que se carga la página web, Selenium obtiene automáticamente la altura máxima de la página web del modelo de objetos del documento y luego el método scrollBy() se desplaza hacia abajo hasta el final.