En este tutorial, aprenderemos a manejar el evento de teclado y mouse en Selenium Webdriver
Clase de acción en selenio
Action Class en Selenium es una función incorporada proporcionada por el selenium para manejar eventos de teclado y mouse. Incluye varias operaciones, como hacer clic en múltiples eventos 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 de usuario avanzada en Selenium Webdriver.
Manejo de eventos de teclado y mouse
El manejo de eventos especiales de teclado y mouse se realiza mediante la API de interacciones de usuario avanzadas . Contiene las acciones y las clases de acción que se necesitan para ejecutar estos eventos. A continuación, se muestran los eventos de teclado y mouse más utilizados proporcionados por la clase Actions.
Método | Descripción |
---|---|
clickAndHold () | Hace clic (sin soltar) en la ubicación actual del mouse. |
contextClick () | Realiza un clic contextual en la ubicación actual del mouse. (Acción del mouse de clic derecho) |
haga doble clic() | Realiza un doble clic en la ubicación actual del mouse. |
dragAndDrop (fuente, destino) | Realiza clic y mantener 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: fuente- elemento para emular botón hacia abajo en.target- elemento para moverse y soltar el mouse en. |
dragAndDropBy (origen, desplazamiento x, desplazamiento y) | Realiza hacer clic y mantener presionado en la ubicación del elemento de origen, se mueve en un desplazamiento determinado y luego suelta el mouse. Parámetros : fuente- elemento para emular botón hacia abajo en.xOffset- desplazamiento horizontal desplazamiento. YOffset- desplazamiento vertical desplazamiento. |
keyDown (tecla_modificador) | Realiza una pulsación de tecla modificadora. No suelta la tecla modificadora; las interacciones posteriores pueden asumir 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 tecla. 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) por el desplazamiento dado. Parámetros : desplazamiento x - desplazamiento horizontal. Un valor negativo significa mover el mouse hacia la izquierda. Y-offset-vertical offset. Un valor negativo significa mover el mouse hacia abajo. |
moveToElement (toElement) | Mueve el mouse al centro del elemento. Parámetros : toElement- elemento al que moverse. |
liberación() | Libera el botón izquierdo del mouse presionado en la ubicación actual del mouse |
sendKeys (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 secuencia secuencia - cualquier valor de cadena que represente la secuencia de pulsaciones de teclas que se enviará |
En el siguiente 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.
La celda que se muestra arriba es una parte de un elemento
Paso 1: Importe las acciones y las clases de acción .
Paso 2: crear una instancia de un nuevo objeto Actions.
Paso 3: Cree una instancia de una acción utilizando el objeto Acciones en el paso 2.
En este caso, vamos a utilizar el método moveToElement () porque simplemente vamos a pasar 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 Action 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
paquete newproject;importar org.openqa.selenium. *;importar org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.interactions.Action;importar org.openqa.selenium.interactions.Actions;clase pública PG7 {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Controlador WebDriver = nuevo FirefoxDriver ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Inicio"));WebElement td_Home = controlador.findElement (Por.xpath ("// html / cuerpo / div"+ "/ tabla / tbody / tr / td"+ "/ tabla / tbody / tr / td"+ "/ tabla / tbody / tr / td"+ "/ tabla / tbody / tr"));Generador de acciones = nuevas acciones (controlador);Acción mouseOverHome = constructor.moveToElement (link_Home).construir();String bgColor = td_Home.getCssValue ("color de fondo");System.out.println ("Antes de pasar el mouse: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("color de fondo");System.out.println ("Después de pasar el mouse: + 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 recuerde 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/";Controlador WebDriver = nuevo FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("correo electrónico"));Generador de acciones = nuevas acciones (controlador);Action seriesOfActions = constructor.moveToElement (txtUsername).hacer clic().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "hola").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().construir();seriesOfActions.perform ();}
Resumen
- El manejo de eventos especiales de teclado y mouse se realiza mediante la API AdvancedUserInteractions.
- Los eventos de palabras clave y mouse más utilizados son doubleClick (), keyUp, dragAndDropBy, contextClick y sendKeys.