Ejecutor JavaScript en Selenium

Selenium es una popular herramienta de automatización basada en la web de código abierto. A veces, el controlador web de Selenium enfrenta problemas al interactuar con algunos elementos web. Por ejemplo, el usuario abre un sitio web y aparece una ventana emergente inesperada que evitará que el controlador web realice operaciones y produzca resultados inexactos. Aquí es donde entra en uso JavascriptExecutor.

¿Qué es JavaScriptExecutor en Selenium?

JavaScriptExecutor es una interfaz que se utiliza para ejecutar JavaScriprt a través de Selenium webdriver. JavaScript es un lenguaje de programación que interactúa con HTML en un navegador, y para usar esta función en Selenium, se requiere JavascriptExecutor.

JavascriptExecutor proporciona dos métodos:

  1. EjecutarScript
  2. EjecutarAsyncScript

1. Ejecutar Script

Este método ejecuta javaScript en la ventana o marco actualmente seleccionado. El script se ejecuta como una función anónima y puede devolver valores. Los tipos de datos devueltos son:

  • elemento web
  • Lista
  • Cuerda
  • Largo
  • booleano

2. EjecutarAsyncScript

Este método se utiliza para ejecutar Javascript asíncrono en la ventana o marco actual. Un Javascript asíncrono ejecutado es un solo hilo mientras que el resto de la página se analiza continuamente. que mejora el rendimiento.

Empezar con JavaScriptExecutor

1. Importar el paquete

Importar org.openqa.selenium.JavascriptExecutor;

2. Crea una referencia

JavascriptExecutor js = (JavascriptExecutor) controlador;

3. Llame al método JavascriptExecutor

js.executeScript(secuencia de comandos, argumentos);

Javascript

// importing the package
Import org.openqa.selenium.JavascriptExecutor;
 
// creating a reference
JavascriptExecutor js = (JavascriptExecutor) driver;
 
// calling the method
js.executeScript(script, args);

Ejemplos de JavascriptExecutor en Selenium 

Ejemplo 1. JavascriptExecutor en Selenium para actualizar la ventana del navegador

JavascriptExecutor js = (JavascriptExecutor) controlador;

js.executeScript(“ubicación.recargar()”);

Ejemplo 2. JavascriptExecutor en Selenium para enviar texto

JavascriptExecutor js = (JavascriptExecutor) controlador;

js.executeScript(“document.getElementByID(‘element id’).value = ‘xyz’;”);

Ejemplo 3. Generar ventana emergente de alerta

JavascriptExecutor js = (JavascriptExecutor)controlador;

Js.executeScript(“alerta(‘hola mundo’);”);

Ejemplo 4. Obtener texto interno de una página web

JavascriptExecutor js = (JavascriptExecutor)controlador;

string sText = js.executeScript(“return document.documentElement.innerText;”).toString();

Ejemplo 5. Obtener título de una página web

JavascriptExecutor js = (JavascriptExecutor)controlador;

string sText = js.executeScript(“return document.title;”).toString();

Ejemplo 6. Página de desplazamiento

JavascriptExecutor js = (JavascriptExecutor)controlador;

 // Desplazamiento vertical: hacia abajo 150 píxeles

 js.executeScript(“ventana.scrollBy(0,150)”);

Haga clic en un elemento usando JavaScripExecutor

En el ejemplo, usamos selenium webdriver y javascriptexecutor para abrir el sitio web geeksforgeeks y hacer clic en un elemento.

Java

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.edge.EdgeDriver;
public class geeksforgeeks {
    public static void main(String args[])
    {
        System.setProperty(
            "webdriver.edge.driver",
            "C:\\Users\\ADMIN\\Documents\\Selenium\\msedgedriver.exe");
       
        // Instantiate a Driver class.
        WebDriver driver = new EdgeDriver();
       
        // Maximize the browser
        driver.manage().window().maximize();
       
        // Launch Website
        driver.get("https://www.geeksforgeeks.org/");
       
        WebElement java = driver.findElement(
            By.xpath("//*[@id=\"hslider\"]/li[6]/a"));
       
        // Create a reference
        JavascriptExecutor js = (JavascriptExecutor)driver;
       
        // Call the JavascriptExecutor methods
        js.executeScript("arguments[0].click();", java);
    }
}

Explicación del código: la secuencia de comandos anterior es para abrir Edge Browser y navegar al sitio web de geeksforgeeks y hacer clic en un elemento usando JavaScriptExecutor. Entonces, veamos cómo funciona:

  1. Establezca una propiedad del sistema «webdriver.edge.driver» en la ruta del archivo youredgedrivrer.exe e instancia una clase de controlador Edge: System.setProperty(«webdriver.edge.driver»,»edgedriver location»);
  2. Maximice la ventana: driver.manage().window().maximize();  
  3. Para abrir la URL: driver.get(“Enlace URL”)
  4. Obtenga el elemento para Java usando el método finddby xpath “driver.findElement(By.xpath(“dirección xpath”));”
  5. Crear referencia para JavaScriptExecutor «JavascriptExecutor js = (JavascriptExecutor) controlador»;
  6. Llame al método JavascriptExecutor y pase el elemento web para hacer clic en «js.executeScript(«argumentos[0].click();»,elementoweb);»

Producción:

Publicación traducida automáticamente

Artículo escrito por allwink45 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *