Clase de acción en Selenium – Eventos de clic del mouse y teclado

En este tutorial, aprenderemos a manejar eventos de teclado y mouse en Selenium controlador web

Clase de acción en Selenium

Clase de acción en Selenium es una característica incorporada proporcionada por el selenium para manejar eventos de teclado y mouse. Incluye varios operaopciones como múltiples eventos haciendo clic con la tecla de control, arrastrar y soltar eventos y muchos más. Estos operaLas operaciones de la clase de acción se realizan utilizando la API de interacción avanzada del usuario en Selenium Controlador web.

Manejo de eventos de teclado y mouse

El manejo de eventos especiales de teclado y mouse se realiza usando el API de interacciones de usuario avanzadas. Contiene el Acciones y del la columna Acción clases que se necesitan al ejecutar estos eventos. el siguientewing son los eventos de teclado y mouse más utilizados proporcionados por la clase Acciones.

Método Descripción
hacer clic y mantener() Hace clic (sin soltar) en la ubicación actual del mouse.
contextoClick() Realiza un clic contextual en la ubicación actual del mouse. (Acción de clic derecho del mouse)
doubleHacer clic() Realiza un double-Haga clic en la ubicación actual del mouse.
arrastrar y soltar (fuente, destino) Realiza clic y mantiene presionado en la ubicación del elemento de origen, se mueve a la ubicación del elemento de destino y luego suelta el mouse.

parámetros:

elemento fuente para emular el botón presionado.

objetivo: elemento al que moverse y soltar el ratón.

dragAndDropBy(fuente, desplazamiento x, desplazamiento y) Realiza un clic y mantiene presionado en la ubicación del elemento de origen, se mueve un desplazamiento determinado y luego suelta el mouse.

parámetros:

elemento fuente para emular el botón presionado.

xOffset- desplazamiento de movimiento horizontal.

yOffset: desplazamiento de movimiento vertical.

teclaAbajo(clave_modificador) Realiza una pulsación de tecla modificadora. No suelta la tecla modificadora; las interacciones posteriores pueden suponer que se mantiene presionada.

parámetros:

modifier_key: cualquiera de las teclas modificadoras (Keys.ALT, Keys.SHIFT, o Teclas.CONTROL)

keyUp(modificador _key) Realiza una liberación de clave.

parámetros:

modifier_key: cualquiera de las teclas modificadoras (Keys.ALT, Keys.SHIFT, o Teclas.CONTROL)

moveByOffset(desplazamiento x, desplazamiento y) Mueve el mouse desde su posición actual (o 0,0) según el desplazamiento dado.

parámetros:

desplazamiento x: desplazamiento horizontal. Un valor negativo significa mover el mouse hacia la izquierda.

desplazamiento y- desplazamiento vertical. Un valor negativo significa mover el mouse hacia abajo.

moverAElemento(aElemento) Mueve el mouse al centro del elemento.

parámetros:

toElement: elemento al que moverse.

lanzamiento() Libera el botón izquierdo presionado del mouse en la ubicación actual del mouse
enviarKeys(onElement, secuencia de caracteres) Envía una serie de pulsaciones de teclas al elemento.

parámetros:

onElement: elemento que recibirá las pulsaciones de teclas, normalmente un campo de texto

charsequence: cualquier valor de cadena que represente la secuencia de pulsaciones de teclas que se enviarán

en el siguientewing Por ejemplo, usaremos el método moveToElement() para pasar el mouse sobre las filas de una tabla de Mercury Tours. Vea el ejemplo a continuación.

Manejo de eventos de teclado y mouse

La celda que se muestra arriba es una parte de un elemento . Si no se coloca sobre él, su color es #FFC455 (naranja). Después de pasar el cursor, el color de la celda se vuelve transparente. Se vuelve del mismo color que el fondo azul de toda la mesa naranja.

Paso 1) Importar el Acciones y la columna Acción clases.

Manejo de eventos de teclado y mouse

Paso 2) Cree una instancia de un nuevo objeto de acciones.

Manejo de eventos de teclado y mouse

Paso 3) Cree una instancia de una acción utilizando el objeto Acciones en el paso 2.

Manejo de eventos de teclado y mouse

En este caso, usaremos el método moveToElement() porque simplemente pasaremos el mouse sobre el enlace "Inicio". El método build() es siempre el método final utilizado para que todas las acciones enumeradas se compilen en un solo paso.

Paso 4) Utilice el método perform() cuando ejecute el objeto Acción que diseñamos en el Paso 3.

Manejo de eventos de teclado y mouse

A continuación se muestra el código completo de WebDriver para verificar el color de fondo del elemento antes y después de pasar el mouse.

package newproject;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;

public class PG7 {
    
    public static void main(String[] args) {
        String baseUrl = "http://demo.guru99.com/test/newtours/";
        System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
                WebDriver driver = new FirefoxDriver();

                driver.get(baseUrl);           
                WebElement link_Home = driver.findElement(By.linkText("Home"));
                WebElement td_Home = driver
                        .findElement(By
                        .xpath("//html/body/div"
                        + "/table/tbody/tr/td"
                        + "/table/tbody/tr/td"
                        + "/table/tbody/tr/td"
                        + "/table/tbody/tr"));    
                 
                Actions builder = new Actions(driver);
                Action mouseOverHome = builder
                        .moveToElement(link_Home)
                        .build();
                 
                String bgColor = td_Home.getCssValue("background-color");
                System.out.println("Before hover: " + bgColor);        
                mouseOverHome.perform();        
                bgColor = td_Home.getCssValue("background-color");
                System.out.println("After hover: " + bgColor);
                driver.close();
        }
}

El resultado a continuación indica claramente que el color de fondo se volvió transparente después de pasar el mouse.

Clase de acción en Selenium

Construyendo una serie de acciones múltiples

Puede crear una serie de acciones utilizando las clases Acción y Acciones.. Solo recuerda cerrar la serie con el método build(). Considere el código de muestra a continuación.

Construyendo una serie de acciones múltiples

public static void main(String[] args) {
String baseUrl = "http://www.facebook.com/"; 
WebDriver driver = new FirefoxDriver();

driver.get(baseUrl);
WebElement txtUsername = driver.findElement(By.id("email"));

Actions builder = new Actions(driver);
Action seriesOfActions = builder
	.moveToElement(txtUsername)
	.click()
	.keyDown(txtUsername, Keys.SHIFT)
	.sendKeys(txtUsername, "hello")
	.keyUp(txtUsername, Keys.SHIFT)
	.doubleClick(txtUsername)
	.contextClick()
	.build();
	
seriesOfActions.perform() ;

}

Construyendo una serie de acciones múltiples

Resumen

  • El manejo de eventos especiales de teclado y mouse se realiza mediante la API AdvancedUserInteractions.
  • Los eventos de mouse y palabras clave de uso frecuente son doubleHaga clic (), keyUp, dragAndDropBy, contextClick y envíeKeys.