Clase de acciones críticas en selenio - guía absoluta 2021

Vamos a discutir y aprender el uso exhaustivo de la clase Actions en Selenium en diferentes operaciones web. La clase Actions en Selenium se usa ampliamente para realizar varias operaciones web, como el movimiento del mouse y el teclado, que son acciones avanzadas del navegador web.

Acciones del ratón

Acciones de teclado

Clase de acciones en selenio

¿Qué es la clase de acciones en selenio? 

Clase de acciones en selenio
Clase de acciones en selenio

Actions Class es una clase de Selenium Bundle Api del paquete org.openqa.selenium.interacciones para manejar interacciones Web críticas y avanzadas con los usuarios a través de la automatización del navegador. Proporciona a los usuarios un controlador para realizar varias acciones de mouse y teclado a través de los diferentes métodos mencionados anteriormente.  

Clase de acciones en selenio
Clase de acciones en selenio

Discutiremos aquí todas las interacciones web a través de la clase Actions en Selenium, para comenzar con Aprendemos las interacciones del mouse y avanzamos hacia la clase de interacciones del teclado con acciones en Selenium.

Interacciones del mouse - Clase de acciones en Selenium

Arrastra y suelta selenio

Arrastrar y soltar en Selenium se puede hacer en tres enfoques diferentes con la clase Acciones en Selenium: 

Arrastra y suelta Selenium con Action Class en Selenium mediante el método de compilación: 

Necesitamos tener dos elementos web para realizar Arrastrar y soltar en Selenium, como el elemento web de origen (que se va a arrastrar) y el elemento web de destino (donde se soltará el elemento web de origen, es decir, el elemento web de destino). El método siguiente es un método personalizado ( que podría usar para construir su Framework WebUtils) que realizan Arrastrar y soltar en Selenium y este método toma dos argumentos, uno es Source WebElement y otro es Destination WebElement como se mencionó anteriormente: 

public void dragAndDrop(Por origen, Por destino) { try { WebElement sourceElement = driver.findElement(source); WebElement elementodestino = conductor.findElement(destino); Generador de acciones = nuevas acciones (controlador); Acción dragAndDrop = builder.clickAndHold(sourceElement).moveToElement(destinationElement) .release(destinationElement).build(); arrastrar y soltar.perform(); BASE_LOGGER.info("La acción de arrastrar y soltar se realizó correctamente"); } catch (Exception e) { StringExceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Error encontrado, es decir: " +ExceptionData + " al realizar DragAndDrop "); } }

Para aprender todo el concepto sobre arrastrar y soltar y conocer todos los enfoques para realizar Arrastrar y soltar en Selenium, haga clic aquí.

Haga clic y mantenga en selenio 

ClickAndHold es otro método importante de la clase Actions (del paquete org.openqa.selenium.interactions) en Selenium para
primero realice la operación de clic izquierdo sobre cualquier elemento web y manténgalo presionado sin soltar el mouse.

Este método se usa principalmente al realizar los escenarios de arrastrar y soltar, a continuación se muestra la imagen del código de muestra: 

Clase de acciones en selenio
haga clic y mantenga presionado -Clase de acciones en Selenium

MoveToElement en Selenio

MoveToElement es un método de la clase Actions en Selenium para realizar el movimiento a otro WebElement (Destination Webelement), que este método toma como un argumento respectivo.

Este método se usa principalmente al realizar los escenarios de arrastrar y soltar, a continuación se muestra la imagen del código de muestra: 

Mover al elemento
Mover al elemento - Clase de acciones en Selenium

Haga doble clic en selenio

Para replicar la operación de doble clic a través del mouse, necesitamos realizar doble clic a través de la clase Acciones en Selenium y podemos hacerlo en el siguiente enfoque: 

public void doubleClick (Por localizador) { try { elemento WebElement = driver.findElement (localizador); Acciones acciones = nuevas acciones (controlador); acciones.doubleClick(elemento).perform(); BASE_LOGGER.info("Realizó el doble clic en el elemento: " + localizador); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("El elemento no está adjunto al documento de la página " + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Elemento " + localizador + " no se encontró en DOM " + e.getCause().getMessage()); } catch (Excepción e) { BASE_LOGGER.error("Elemento " + localizador + " no se pudo hacer clic " + e.getCause().getMessage()); } }

El fragmento de código anterior es un método que básicamente toma un argumento como Locator, es decir, el WebElement en el que se debe realizar el doble clic. 

clic contextual o clic derecho en selenio

Para replicar la operación de clic de contexto o clic derecho a través del mouse, necesitamos realizar el método de clic de contexto a través de la clase Actions en Selenium y podemos hacerlo en el siguiente enfoque: 

public void rightClick (Por localizador) { try { elemento WebElement = driver.findElement (localizador); Acciones acciones = nuevas acciones (controlador); acciones.contextClick(elemento).perform(); BASE_LOGGER.info("Realizó el contexto Haga clic en el elemento: " + localizador); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("El elemento no está adjunto al documento de la página " + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Elemento " + localizador + " no se encontró en DOM " + e.getCause().getMessage()); } catch (Excepción e) { BASE_LOGGER.error("Elemento " + localizador + " no se pudo hacer clic " + e.getCause().getMessage()); } }

El fragmento de código anterior es un método que básicamente toma un argumento como Locator, es decir, el WebElement en el que se debe realizar el doble clic. 

Pausa en selenio 

Siempre que queramos haber introducido un retraso de tiempo entre las diferentes acciones, podríamos usar el método de pausa entre las operaciones de las acciones, como digamos si queremos tener algunos segundos de retraso entre la operación de arrastrar y soltar, entonces podemos llamar a la pausa ( ) método de clase de acciones en selenio en el siguiente enfoque: 

public void pauseBetweenActions(Por origen, Por destino, int timeUnit) { try { WebElement sourceElement = driver.findElement(source); WebElement elementodestino = conductor.findElement(destino); Generador de acciones = nuevas acciones (controlador); builder.clickAndHold(sourceElement).moveToElement(destinationElement).pause(timeUnit).release(destinationElement).build().perform(); BASE_LOGGER.info("La acción de arrastrar y soltar se realizó correctamente"); } catch (Exception e) { StringExceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Error encontrado, es decir: " +ExceptionData + " al realizar DragAndDrop "); } }

En el método anterior se necesitan tres argumentos: un WebElement de origen, otro argumento es el elemento de destino y el último es para timeUnit, es decir, el retardo de tiempo que queremos introducir usando pause () en Selenium.

Desplazamiento del mouse en selenio

La operación Mouse Hover en Selenium se puede lograr usando la clase Actions en Selenium, básicamente, una vez que estemos enfocados con cualquier webElement y desde allí, queremos colocar el cursor del mouse sobre cualquier otro elemento mediante esta operación Mouse Hover, y este WebElement donde que queremos tomar nuestro cursor del mouse se llama Target WebElement. 

A continuación se muestra el fragmento de código para el mismo: 

public void mouseHover(Por targetedLocator) { try { WebElement targetElement = driver.findElement(targetedLocator); Generador de acciones = nuevas acciones (controlador); constructor.moveToElement(elemento objetivo).build().perform(); BASE_LOGGER.info("Realizó con éxito el desplazamiento del mouse en la acción de Selenium"); } catch (Exception e) { StringExceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Error encontrado, es decir: " +ExceptionData + " al pasar el ratón por encima en Selenium "); } }

Para conocer todos los Comando de Selenium webdriver puede consultar aquí .

Acciones de teclado - Clase de acciones en Selenium

Qué son las acciones del teclado y dónde se requiere:

Las acciones del teclado significan que las operaciones se realizan directamente desde un teclado, como digamos que estamos tratando de realizar Contrl + A juntos o Control + C juntos o ejecutando el botón Key up o Keydown desde el teclado mientras interactuamos con WebElements.

Podemos realizar varias interacciones de teclado con la ayuda de la clase Actions en Selenium

sendKeys en Selenio :

Podemos realizar la operación sendKeys con la ayuda de la clase Actions en Selenium de la siguiente manera:

public void sendKeysWithActionClass(By locator) { try { WebElement element = driver.findElement(locator); Acciones acciones = nuevas acciones (controlador); actions.sendKeys("Entrada de datos del teclado"); // Realizar acciones de teclado presionando Control y c juntas actions.sendKeys(Keys.CONTROL); acciones.sendKeys("c"); acciones.construir().perform(); } catch (Exception e) { StringExceptionData = e.getCause().getMessage(); } }

KeyUp en selenio :

De manera similar, podemos realizar operaciones KeyUp con la clase Actions en Selenium de la siguiente manera:

    public void keyUpWithActionClass(By locator) { try { WebElement element = driver.findElement(locator); Acciones acciones = nuevas acciones (controlador); actions.sendKeys("Entrada de datos del teclado"); // Realizar acciones de teclado presionando Control y c junto con keyUp actions.keyUp(Keys.CONTROL); acciones.sendKeys("c"); acciones.construir().perform(); } catch (Exception e) { StringExceptionData = e.getCause().getMessage(); } }

KeyDown en Selenio

Podemos realizar la operación keyDown con la ayuda de la clase Actions de nuevo en Selenium en el siguiente enfoque:

public void keyDownWithActionClass(By locator) { try { WebElement element = driver.findElement(locator); Acciones acciones = nuevas acciones (controlador); actions.sendKeys("Entrada de datos del teclado"); // Realizar acciones de teclado presionando Control y V junto con keyDown actions.keyDown(Keys.CONTROL); acciones.sendKeys("v"); acciones.construir().perform(); } catch (Exception e) { StringExceptionData = e.getCause().getMessage(); } }

Conclusión : Con esto hemos terminado aquí con la clase Acciones en Selenium, en el próximo tutorial JavascriptExecutor en Selenium de manera modular pero exhaustiva. Aprender Exhaustivamente el comando Selenium también puede consultar aquí para prepararse para Puede consultar las preguntas críticas de la entrevista de Selenium aquí.

Deja un comentario