¿Qué es?
Selenium es una herramienta que se usa para automatizar tests funcionales en aplicaciones web. Estos tests pueden ser implementados en varios lenguajes de programación como Java, C#, Ruby, Groovy, Perl, Php y Python.
Selenium posee varias herramientas, de las cuales Selenium IDE que es un entorno de desarrollo integrado con objetivo de simplificar las pruebas automatizadas mediante una interfaz gráfica sin la necesidad de programar con un lenguaje de programación. Esta herramienta nos permite localizar un elemento particular en una página web, detectar y grabar las acciones/eventos que hacemos sobre los elementos de una página web, reproducir las acciones grabadas y verificar el diseño y el comportamiento de estas páginas.
¿Cómo se localiza un elemento en una página con Selenium?
Hay varios métodos con los cuales podemos localizar un elemento en una página web:
- Mediante el id : id=username
- Mediate el name : name=username
- Mediante el selector css : css=#menu > li > a
- Mediante el xpath : xpath=/html/body/div[1]/div/header/a/h2
¿Cómo verificar que un elemento es visible en una página web mediante Selenium IDE?
Hay momentos en los que necesitamos verificar que un elemento html es visible pero no se visualiza de forma instantánea debido a que la página web no se cargó por completo, pero fallan nuestras pruebas por este motivo.
Para espera a que un elemento se cargue y sea visible en la página se puede utilizar el comando “wait for element visible”.
Ejemplo:
Command: wait for element visible
Target: xpath=//*[@id=»cpo-test-login-links»]/li[1]/a
Value: 5000
Explicación:
En “command”: ponemos el comando o la acción que queremos. En este caso wait for element visible para esperar a que el elemento sea visible.
En Target: especificamos el localizador por id, name, css o xpath. En este caso hemos usado el localizador xpath.
En value: ponemos el valor que queremos. En nuestro caso el tiempo máximo de espera en milisegundos (5000/1000 = 5 segundos). Si el elemento no se visualiza en este periodo de tiempo el test falla.
Tipos de Comandos
Hay tres tipos de comandos en Selenium IDE: Actions, Accessors y Assertions.
- Actions: Son comandos que interactúan directamente con los elementos de la página (cliquear, escribir, mover ratón, abrir nueva página, ect).
- Accessors: Son comandos que permiten almacenar valores en una variable. Por ejemplo el comando «storeTitle» es un descriptor de acceso porque sólo «Lee» el título de la página y lo guarda en una variable. No interactúa con ningún elemento de la página.
- Assertions: Son comandos que verifican si se cumple una determinada condición. Y existen 3 tipos de assertions: Assert, Verify y WaitFor.
Diferencias entre assert y verify:
- Assert verifica una condición y si falla para todo el test.
- Verify también verifica una condición pero si falla sigue con los steps siguientes.
Lista de comandos de Selenium:
Comando | Número de parámetros | Descripción |
open | 0 – 2 | Abre una página mediante una URL. |
click/clickAndWait | 1 | Hace clic en un elemento especificado. |
type/typeKeys | 2 | Escribe una secuencia de caracteres. |
verifyTitle/assertTitle | 1 | Compara el título de la página real con un valor esperado. |
verifyTextPresent | 1 | Comprueba si un determinado texto se encuentra dentro de la página. |
verifyElementPresent | 1 | Comprueba la presencia de un determinado elemento. |
verifyTable | 2 | Compara el contenido de una tabla con los valores esperados. |
waitForPageToLoad | 1 | Detiene la ejecución hasta que la página se carga completamente. |
waitForElementPresent | 1 | Detiene la ejecución hasta que el elemento especificado esté presente. |