webdriver listeners selenium
¿Qué son los oyentes de WebDriver? ¿Por qué necesitamos oyentes en las pruebas de automatización de selenio? Este tutorial responde estas preguntas en detalle con ejemplos de código de muestra:
Los oyentes, como su nombre indica, 'escuchan' cualquier evento prescrito en el código de Selenium. Por ejemplo, si desea saber qué sucede antes de hacer clic en cualquier elemento; antes y después de navegar a un elemento, o lo que sucede cuando se lanza una excepción y falla la prueba, los escuchas son útiles.
El uso práctico de Listeners en Selenium Automation Testing podría ser registrar el orden de las acciones y tomar la captura de pantalla cuando se lanza una excepción. Esto facilita la depuración sencilla en las etapas posteriores de la ejecución de la prueba.
=> Consulte TODOS los tutoriales de Selenium aquí.
Lo que vas a aprender:
Implementación de escuchas de Webdriver
Existen principalmente dos tipos de oyentes:
- Oyentes de Webdriver
- Oyentes de TestNG
Primero entenderemos cómo funcionan los escuchas de Webdriver. En este tutorial, nuestro enfoque estará en Webdriver Event Listener.
¿Por qué utilizamos Webdriver Event Listener?
Con la ayuda de Webdriver, podemos activar una gran cantidad de eventos en el navegador y los elementos web. Mantiene un registro de todos los eventos que se activan durante la ejecución y puede ayudarnos a depurar cuando se completa la ejecución.
Hay dos formas en las que podemos implementar Webdriver Event Listeners:
- WebDriverEventListener que es una interfaz que tiene algunos métodos predefinidos para rastrear los eventos de Webdriver. Requiere que implementemos TODOS los métodos predefinidos en la Interfaz.
- AbstractWebDriverEventListener (clase) lo que nos brinda la facilidad de implementar solo aquellos métodos en los que estamos interesados.
#1) Interfaz WebDriverEventListener
Los métodos predefinidos utilizados para implementar la interfaz WebDriverEventListener se enumeran a continuación:
(i) void beforeChangeValueOf (WebElement arg0, WebDriver arg1, CharSequence [] arg2)
Este método se activa cuando realizamos la operación sendKeys () o clear () en el elemento web. [Por ejemplo, driver.findElement (By.id ('Login')). Clear ()], y se activa ANTES DE realizar la operación en el Web Element.
Parámetros:
|_+_|(ii) void afterChangeValueOf (WebElement arg0, WebDriver arg1, CharSequence [] arg2)
Este método se activa cuando realizamos la operación sendKeys () o clear () en el elemento web. [Por ejemplo, driver.findElement (By.id ('Login')). Clear ()], y se activa DESPUÉS realizar la operación en el Web Element.
Parámetros:
|_+_|(iii) nulo beforeClickOn (WebElement arg0, WebDriver arg1)
Este método se activa ANTES DE hacemos clic en cualquier elemento web.
Parámetros:
|_+_|(iv) nulo afterClickOn (WebElement arg0, WebDriver arg1)
¿Qué significa la falta de coincidencia de la clave de seguridad de la red?
Este método se activa DESPUÉS hacemos clic en cualquier elemento web.
Parámetros:
|_+_|(v) void beforeNavigateTo (String arg0, WebDriver arg1)
Este método se activa cuando usamos navigate (). To (String URL) [Por ejemplo, navigate (). To (“https: // www.google.com ”)], Y se activa ANTES DE navegando a la URL.
Parámetros:
|_+_|(vi) void afterNavigateTo (String arg0, WebDriver arg1)
Este método se activa cuando usamos navigate (). To (String URL) [Por ejemplo, navigate (). To (“https: // www.google.com ”)], Y se activa DESPUÉS navegando a la URL.
Parámetros:
|_+_|(vii) void beforeNavigateBack (WebDriver arg0)
Este método se activa cuando usamos el comando navigate (). Back (). Se lleva a cabo ANTES DE redirigir al usuario a la página anterior.
Parámetros:
|_+_|(viii) void afterNavigateBack (WebDriver arg0)
Este método se activa cuando usamos el comando navigate (). Back (). Se lleva a cabo DESPUÉS redirigir al usuario a la página anterior.
Parámetros:
|_+_|(ix) anular antes deNavigateForward (WebDriver arg0)
Este método se activa cuando usamos el comando navigate (). Forward (). Se lleva a cabo ANTES DE redireccionando al usuario a la página siguiente.
Parámetros:
|_+_|(x) vacío después deNavigateBack (WebDriver arg0)
Este método se activa cuando usamos el comando navigate (). Forward (). Se lleva a cabo DESPUÉS redireccionando al usuario a la página siguiente.
Parámetros:
|_+_|(xi) vacío antes deNavigateRefresh (WebDriver arg0)
Este método se activa cuando usamos el comando navigate (). Refresh (). Se lleva a cabo ANTES DE actualizando la página actual.
Parámetros:
|_+_|(xii) void afterNavigateRefresh (WebDriver arg0)
Este método se activa cuando usamos el comando navigate (). Refresh (). Se lleva a cabo DESPUÉS actualizando la página actual.
Parámetros:
|_+_|(xiii) void beforeFindBy (Por arg0, WebElement arg1, WebDriver arg2)
Este método se activa cuando usamos el comando driver.findElement (By.id ('Alguna identificación o cualquier otro localizador')) . Se lleva a cabo ANTES DE busque el elemento web.
Parámetros:
|_+_|(xiv) vacío después deFindBy (Por arg0, WebElement arg1, WebDriver arg2)
Este método se activa cuando usamos el comando driver.findElement (By.id ('Alguna identificación o cualquier otro localizador')) . Se lleva a cabo DESPUÉS busque el elemento web.
Parámetros:
|_+_|(xv) void onException (Throwable arg0, WebDriver arg1)
mejor software de copia de seguridad de imagen gratuito 2017
Este método se lanza siempre que se lanza una excepción. Por ejemplo, si Webdriver no puede encontrar el elemento, activará este método y ejecutará cualquier código escrito dentro de él.
Parámetros:
|_+_|(xvi) void beforeAlertAccept (WebDriver arg0)
Este método se activa siempre que se muestra un cuadro de alerta en la pantalla y se activa a la derecha ANTES DE haciendo clic en el botón 'Aceptar o ACEPTAR'.
Parámetros:
|_+_|(xvii) void afterAlertAccept (WebDriver arg0)
Este método se activa siempre que se muestra un cuadro de alerta en la pantalla y se activa a la derecha DESPUÉS haciendo clic en el botón 'Aceptar o ACEPTAR'.
Parámetros:
|_+_|(xviii) void beforeAlertDismiss (WebDriver arg0)
Este método se activa siempre que se muestra un cuadro de alerta en la pantalla y se activa a la derecha ANTES DE haciendo clic en el botón 'CANCELAR'.
Parámetros:
|_+_|(xix) void afterAlertDismiss (WebDriver arg0)
Este método se activa siempre que se muestra un cuadro de alerta en la pantalla y se activa a la derecha DESPUÉS haciendo clic en el botón 'CANCELAR'.
Parámetros:
|_+_|Estos son todos los métodos que están disponibles con WebDriverEventListener. Hay otros dos métodos beforeScript y afterScript pero no los cubriremos en este tutorial.
Pasos para implementar escuchas con la ayuda de la interfaz 'WebDriverEventListener' en Eclipse:
Paso 1: Cree un paquete con el nombre 'Oyentes'. Dentro de ese paquete, cree una clase llamada ' WebdriverListeners 'Y dejar que se implemente 'WebDriverEventListener' .
La interfaz de usuario debería verse a continuación:
Pase el mouse sobre la línea roja con Error, Eclipse debería lanzar la siguiente sugerencia para importar 'WebDriverEventListener'. Haga clic en Importar.
Se sale del error en WebDriverEventListener, pero verá el siguiente error en la clase 'WebDriverListeners'. Mueva el cursor sobre el error y verá una sugerencia para agregar métodos no implementados. Haga clic en él y verá que todos los métodos se enumeran y describen arriba.
Tenga en cuenta que hemos agregado la línea System.out.println a cada método con fines de demostración.
Código de muestra-1
|_+_|Paso 2: Cree la clase Listeners_Tests y asegúrese de que tenga el método principal dentro de la clase. Permita que extienda la clase WebDriverListeners para que la clase de escucha pueda realizar una operación en los comandos del navegador prescritos para ciertos eventos.
Copie y pegue el siguiente código en la clase Listeners_Tests. Ejecute el siguiente código como la aplicación Java.
Código de muestra-2
|_+_|Una vez que la ejecución se haya completado con éxito, verifique el contenido registrado en la consola. Iremos a todos los eventos enumerados en el código anterior.
Fragmento n. ° 1 de la consola
Evento 1: Esto registra el evento beforeNavigateTo y afterNavigateTo, y realiza las acciones escritas en los dos bloques en consecuencia.
Evento-2: Esto registra el evento beforeFindBy y afterFindBy, y realiza las acciones escritas en los dos bloques en consecuencia. El evento posterior a estos dos eventos cubre los eventos beforeClick y afterClick.
Evento-3: Esto registra el beforeChangeValueOf y afterChangeValue de los eventos.
Evento-4: Esto es lo mismo que Event-3
Evento-5: Esto registra los eventos beforeNavigateBack y afterNavigateBack.
Evento-6: Esto registra los eventos beforeNavigateForward y afterNavigateForward.
Evento-7: Esto registra los eventos beforeNavigateRefresh y afterNavigateRefresh.
Evento-8: Esto es lo mismo que Event-1
Evento-9: Esto es lo mismo que Event-2
Fragmento n. ° 2 de la consola
Evento-10: Esto registra los eventos como beforeAlertAccept y afterAlertAccept.
Evento-11: Esto registra los eventos como beforeAlertDismiss y afterAlertDismiss.
Evento-12: Esto registra los eventos como onException y lanza el mensaje.
Espero que la breve descripción de los oyentes le dé una idea de cómo funcionan los oyentes de Webdriver. Como dijimos anteriormente que con la ayuda de WebDriverEventListener, debemos implementar todos los métodos disponibles con esta interfaz.
Sin embargo, con la ayuda de la clase AbstractWebDriverEventListener, podemos elegir qué eventos queremos implementar.
# 2) Clase AbstractWebDriverEventListener
Pasos para implementar escuchas usando la clase 'AbstractWebDriverEventListener':
Paso 1
Crear una clase ' AbstractWebDriverListener 'Y que amplíe la clase' AbstractWebDriverEventListener ”
Como puede ver, a diferencia de ' WebDriverEventListener ', Esta clase cuando se extiende no arroja un error para agregar métodos no implementados. Puede seleccionar los métodos que desee implementar en su proyecto.
Copie y pegue el siguiente código:
Código de muestra-3
|_+_|Paso 2
Crea una nueva clase con el nombre ' AbstractListeners_Test 'Y dentro de él, crea la instancia de' AbstractWebDriverListeners ' clase.
Copie y pegue el siguiente código dentro de esta clase.
Código de muestra-4
|_+_|Esta clase también tiene los eventos registrados anteriormente, pero como hemos limitado nuestra clase Listener para implementar solo seis eventos, descartará otros y solo mostrará el registro de los mencionados.
Vista de la ventana de la consola
Como puede ver las áreas marcadas en amarillo en la imagen de arriba, solo los métodos que se han implementado en el AbstractWebDriverListeners La clase se ha activado.
fase de diseño del ciclo de vida del desarrollo de software
Conclusión
WebDriver Listeners son las interfaces que escuchan un evento del navegador y responden a él en consecuencia. Si lo implementa con la ayuda de WebDriverEventListener, debe implementar todos los métodos involucrados con esta interfaz
Si implementa WebDriver Listener con la ayuda de la clase AbstractWebDriverEventListener, puede elegir los métodos que desea implementar.
=> Visite aquí para aprender el selenio desde cero.
Lectura recomendada
- Tutorial de Cucumber Selenium: Integración de Cucumber Java Selenium WebDriver
- Introducción a Selenium WebDriver - Tutorial de Selenium n. ° 8
- Tutorial de ChromeDriver Selenium: Pruebas de Selenium Webdriver en Chrome
- Implementación de nuestro primer script de WebDriver - Tutorial de Selenium WebDriver # 10
- Más de 30 mejores tutoriales de selenio: aprenda selenio con ejemplos reales
- Preguntas frecuentes sobre selenio
- Cómo manejar alertas / ventanas emergentes en Selenium WebDriver - Tutorial de Selenium n. ° 16
- Espera implícita y explícita en Selenium WebDriver (tipos de esperas de Selenium)