efficient selenium scripting
En el tutorial anterior, discutimos las implicaciones técnicas al implementar el registro en un marco . Nosotros discutimos utilidad log4j en longitud. Discutimos los componentes básicos que constituyen log4j desde una perspectiva de usabilidad. Con los anexos y diseños, se aprovecha al usuario para elegir el formato / patrón de registro deseado y la fuente / ubicación de datos.
En el tutorial actual número 27 en este serie completa de formación gratuita en línea sobre selenio , cambiaríamos nuestro enfoque hacia unos pocos aún temas importantes eso nos guiaría a solucionar algunos problemas recurrentes. Es posible que los usemos o no en la creación de scripts diarios, pero serían útiles a largo plazo.
Lo haríamos discutir algunos conceptos avanzados en los que trataríamos con eventos de mouse y teclado, accediendo a múltiples enlaces mediante la implementación de listas . Entonces, ¿por qué no comencemos y analicemos brevemente estos temas con la ayuda de escenarios apropiados y fragmentos de código?
c ++ char * a int
Lo que vas a aprender:
- Ejecutores de JavaScript
- Accediendo a múltiples elementos en una lista
- Manejo de eventos de teclado y mouse
- Conclusión
- Lectura recomendada
Ejecutores de JavaScript
Al automatizar un escenario de prueba, hay ciertas acciones que se convierten en una parte inherente de los scripts de prueba.
Estas acciones pueden ser:
- Hacer clic en un botón, hipervínculo, etc.
- Escribir en un cuadro de texto
- Desplazarse vertical u horizontalmente hasta que se muestre el objeto deseado
- Y mucho más
Ahora, es evidente a partir de los tutoriales anteriores que la mejor manera de automatizar tales acciones es mediante el uso de comandos de Selenium.
Pero, ¿y si los comandos del selenio no funcionan?
Sí, es absolutamente posible que los comandos de selenio muy básicos y elementales no funcionen en ciertas situaciones.
Dicho esto, para poder solucionar tal situación, incluimos a los ejecutores de JavaScript en la imagen.
¿Qué son los ejecutores de JavaScript?
La interfaz JavascriptExecutor es parte de org.openqa.selenium e implementa la clase java.lang.Object. JavascriptExecutor presenta las capacidades para ejecutar JavaScript directamente dentro del navegador web. Para poder ejecutar JavaScript, en su implementación se proporcionan ciertos mecanismos en forma de métodos junto con un conjunto específico de parámetros.
Métodos
executeScript (secuencia de comandos, argumentos)
Como sugiere el nombre del método, ejecuta JavaScript dentro de la ventana actual, alerta, marco, etc. (la ventana en la que la instancia de WebDriver se está enfocando actualmente)
executeAsyncScript (secuencia de comandos, argumentos)
Como sugiere el nombre del método, ejecuta JavaScript dentro de la ventana actual, alerta, marco, etc. (la ventana en la que la instancia de WebDriver se está enfocando actualmente)
Los parámetros y la declaración de importación son comunes a ambos métodos ejecutores.
Parámetros
Script: el script que se ejecutará
Argumento: los parámetros que requiere el script para su ejecución (si corresponde)
Declaración de importación
Para poder usar JavascriptExecutors en nuestros scripts de prueba, necesitamos importar el paquete usando la siguiente sintaxis:
import org.openqa.selenium.JavascriptExecutor;
Código de muestra
# 1) Hacer clic en un elemento web
|_+_|# 2) Escribir en un cuadro de texto
|_+_|# 3) Desplazarse hacia abajo hasta que el elemento web esté en la vista
|_+_|Puede encontrar otras formas de escribir el código para acceder a JavascriptExecutors.
preguntas y respuestas de la entrevista de rest api
Accediendo a múltiples elementos en una lista
A veces, podemos encontrarnos con elementos del mismo tipo, como múltiples hipervínculos, imágenes, etc., dispuestos en una lista ordenada o desordenada. Por lo tanto, tiene mucho sentido tratar estos elementos con una sola pieza de código y esto se puede hacer usando WebElement List. Consulte la captura de pantalla a continuación para comprender los elementos de los que estoy hablando.
En la imagen de arriba, vemos que los distintos proveedores de servicios pertenecen a una lista desordenada. Por lo tanto, la verificación de la capacidad de hacer clic y la visibilidad de estos elementos se puede realizar mediante una sola pieza de código utilizando una lista de elementos.
Declaración de importación
Para poder usar una lista de WebElement en nuestros scripts de prueba, necesitamos importar el paquete usando la siguiente sintaxis:
import java.util.List;
Código de muestra
|_+_|Existen varios requisitos bajo los cuales las listas se pueden usar para verificar los elementos con cambios de implementación adecuados.
Manejo de eventos de teclado y mouse
Manejo de eventos de teclado
Como también se dijo anteriormente, hay n números de formas de lidiar con el mismo enunciado del problema en diferentes contextos.
Por lo tanto, a veces surge la necesidad de abordar un problema cambiando la estrategia de manejo convencional por una estrategia más avanzada. He sido testigo de casos en los que no pude lidiar con alertas y ventanas emergentes, etc. mediante comandos de selenio, por lo que tuve que optar por diferentes utilidades de Java para lidiar con esto mediante pulsaciones del teclado y eventos del mouse.
La clase de robot es una de esas opciones para realizar eventos de teclado y de mouse.
Entendamos el concepto con la ayuda de un escenario y su implementación.
Guión:
Recopilemos una situación en la que aparece una ventana emergente innecesaria en la pantalla que no se puede aceptar o descartar mediante la interfaz de alerta, por lo que la única opción inteligente que nos queda es cerrar la ventana con las teclas de acceso directo: 'Alt + barra espaciadora + C' . Veamos cómo cerramos la ventana emergente usando Robot Class.
Antes de iniciar la implementación, debemos importar el paquete necesario para poder usar la clase Robot dentro de nuestro script de prueba.
Declaración de importación
importar java.awt.Robot;
Código de muestra
|_+_|La clase Robot también se puede usar para manejar eventos del mouse, pero veamos aquí las capacidades del selenio para manejar eventos del mouse.
Manejo de eventos del mouse
WebDriver ofrece una amplia gama de utilidades de interacción que el usuario puede aprovechar para automatizar los eventos del mouse y el teclado. Action Interface es una de esas utilidades que simula las interacciones de un solo usuario.
Por lo tanto, seríamos testigos de que Action Interface coloca el mouse sobre un menú desplegable que luego abre una lista de opciones en el siguiente escenario.
Guión:
- Colocar el mouse sobre el menú desplegable
- Haga clic en uno de los elementos de las opciones de la lista
Declaración de importación
importar org.openqa.selenium.interactions.Actions;
Código de muestra
cómo imprimir una matriz en orden inverso java|_+_|
Conclusión
En este tutorial, analizamos algunos temas avanzados relacionados con la creación de scripts eficiente y la resolución de problemas en situaciones en las que se requiere que el usuario maneje eventos de mouse y teclado. También discutimos cómo almacenar más de un elemento web en una lista. Espero que pueda solucionar estos impedimentos si los encuentra.
Siguiente tutorial n. ° 28 : Para el próximo tutorial de la serie, discutiremos el concepto de prueba de base de datos utilizando Selenium WebDriver . Seríamos testigos del mecanismo de conexión de la base de datos, realizando consultas de selenio y obteniendo los resultados a través del código de Selenium WebDriver.
Lectura recomendada
- Introducción a Selenium WebDriver - Tutorial de Selenium n. ° 8
- Depuración de scripts de Selenium con registros (Tutorial de Log4j) - Tutorial de Selenium n. ° 26
- Más de 30 mejores tutoriales de selenio: aprenda selenio con ejemplos reales
- Tutorial de Cucumber Selenium: Integración de Cucumber Java Selenium WebDriver
- Cómo localizar elementos en los navegadores Chrome e IE para crear scripts de Selenium - Tutorial de Selenium n. ° 7
- Implementación de nuestro primer script de WebDriver - Tutorial de Selenium WebDriver # 10
- Configuración e instalación completa de WebDriver con Eclipse - Tutorial de Selenium n. ° 9
- Creación de genéricos y conjuntos de pruebas: tutorial de Selenium n. ° 22