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 función incorporada que proporciona Selenium para manejar eventos del teclado y del mouse. Incluye varias operaciones, como múltiples eventos haciendo clic con la tecla de control, arrastrar y soltar eventos y muchas más. Estas 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 la Acción Clases que se necesitan al ejecutar estos eventos. A continuación, se enumeran los eventos de teclado y mouse más utilizados que proporciona la clase Actions.
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) |
doble clic() | Realiza un doble 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 Keys.CONTROL) |
keyUp(modificador _key) | Realiza una liberación de clave.
parámetros: modifier_key: cualquiera de las teclas modificadoras (Keys.ALT, Keys.SHIFT o Keys.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 siguiente ejemplo, utilizaremos el método moveToElement() para pasar el mouse sobre uno Mercury Filas de la tabla de tours. Vea el ejemplo a continuación.
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 Acción clases.
Paso 2) Cree una instancia de un nuevo objeto de acciones.
Paso 3) Cree una instancia de una acción utilizando el objeto Acciones en el paso 2.
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.
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.
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.
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() ; }
Resum
- El manejo de eventos especiales de teclado y mouse se realiza mediante la API AdvancedUserInteractions.
- Los eventos de mouse y palabras clave utilizados con frecuencia son doubleClick(), keyUp, dragAndDropBy, contextClick y sendKeys.