Última Actualización febrero 16th, 2019 6:07 PM
May 19, 2017 NGuerrero Desarrollo Web, java, Programacion, tutoriales 0
Hay comandos de Selenium que necesitan como parámetro un localizador del elemento sobre el que realizar la acción. Es muy importante que dicho localizador se resuelva de forma única, para que la prueba sea correcta, y la acción no se realice sobre un elemento indeseado. Por otra parte, también debe tenerse en cuenta que el identificador elegido sea reutilizable en el futuro: por ejemplo debe evitarse la elección de un identificador que cambie con cada nueva versión de la aplicación.
Por ello, es muy importante elegir de manera adecuada los identificadores que vamos a usar en cada caso:
Localizador | Único | Independencia de la estructura HTML | Compatible JSF | Compatible Ext JS |
---|---|---|---|---|
id | Si | Si | Si(*) | No |
name | No | Si | Si | No |
identificador | No | Si | Si(*) | No |
dom | No | No | Si | Si |
Xpath | Si(**) | No | Si | Si |
link | No | Si | Si | Si |
css | No | Si | Si | Si |
(/*) Siempre que el ‘id se defina manualmente. (**) Xpath devolverá un elemento único siempre que sea una ruta absoluta, en el caso de rutas relativas no se cumple ya que una misma ruta puede ser válida para varios elementos.
Algunas de las limitaciones encontradas para la grabación de las pruebas usando Selenium son las siguientes:
El uso de esta tecnología en los desarrollos permite modificar el HTML cargado de una página sin realizar una recarga de la misma, por lo que las funciones de Selenuim que esperan a que la página haya cargado para continuar con la ejecución de los tests, no sirven.
En estos casos la estrategia que se recomienda seguir es identificar un elemento que sea modificado mediante la llamada AJAX y realizar una espera hasta que el elemento sea modificado. Lo más habitual es esperar a que un elemento cambie de visibilidad (visible->oculto y viceversa), o que aparezca un nuevo elemento HTML (un nuevo input, un nuevo texto, etc..). De esta manera se podrá identificar cuándo una llamada AJAX ha terminado y es posible continuar con la ejecución de los tests.
Para la ejecución de las pruebas, Selenium ‘inyecta’ código javascript en la página HTML y así consigue la ejecución automática del código grabado. Esto hace que no sea posible acceder a ningún elemento que se quede fuera del ámbito del código HTML, como es el caso en el que se necesite interactuar con ventanas emergentes. Existen varias situaciones, y en algunas de ellas el problema es solventable:
En cualquier caso, las ventanas emergentes obligan a realizar una actuación manual.
Existen diferencias en la interpretación javacript de cada navegador (incluso puede que entre diferentes versiones del mismo navegador) o los permisos que se pueda tener para realizar diferentes tareas, lo cual implica que las pruebas generadas deben seguir estrategias diferentes según el navegador al que vaya dirigido, aumentando la complejidad del diseño.
Las diferencias entre navegadores (incluso entre diferentes versiones del mismo navegador) mas comunes son:
Dependiendo del cambio introducido en la aplicación, las pruebas funcionales automatizadas con anterioridad podrán ser reutilizadas en mayor o en menor medida. Los cambios se pueden agrupar en:
Antes de decidir la automatización de las pruebas de una aplicación con Selenium es necesario analizar el tiempo medio que se va a invertir en la grabaciones de las pruebas, ya que en ocasiones puede resultar mucho mayor que el proceso de ejecutarlas manualmente. Para mas datos puede consultarse la pauta sobre automatización de pruebas funcionales.
En la página oficial de Selenium, en la sección de descargas hay enlace al plugin Selenium IDE para Firefox.
En ocasiones tarda en refrescarse la lista de comandos, así que se puede continuar la grabación y si a las 5 o 6 ordenes no aparecen, comprobar si el botón de grabación está activo.
Se puede mirar el código fuente de la página e ir construyendo la ruta XPath a mano. Pero para ahorrar tiempo y evitar errores conviene instalar el plugin Firebug para Firefox. Una vez instalado podremos activarlo con el botón que se ha añadido a la parte inferior del navegador. Una vez activo veremos una ventana como ésta:
Firebug para Firefox
En la pestaña HTML podemos ver un árbol con la estructura de la página. En él se puede buscar el elemento del cual queremos conocer el XPath, aunque es más fácil hacer uso del botón de selección de elementosy hacer click sobre el elemento deseado, lo que hará que se abra el árbol HTML justo en el objeto seleccionado:
Botón de selección de elementos
Una vez encontrado el objeto en el HTML, al hacer click con el botón secundario sobre él, aparece la opción “Copiar XPath”, con lo que tendremos en el portapapeles la ruta XPath del elemento.
Ruta XPath del elemento
Para ejecutarla desde Selenium IDE, lo primero es parar la grabación, para ello se desactiva el botón
Botón parar
A continuación, para ejecutar hay que pulsar el botón
Botón play
Hay que comprobar que el localizador usado sea único, porque lo más probable en este caso sea que no lo sea y la ejecución se esté realizando sobre otro elemento.
En este caso puede estar ocurriendo dos cosas:
No, la prueba esta correctamente grabada, Selenium a la hora de ejecutar una prueba no muestra los popups de javascript, pero si que interactua con ellos a través de las funciones que dispone a tal efecto.
Al realizar una ejecución, en la lista de comandos podremos ver en color verde las instrucciones que se lanzan correctamente y en rojo las que han fallado. Además en la ventana de información aparece las razones por las que se ha producido el fallo.
Te esperamos en siguiente artículo en donde hablaremos mas acerca de estos temas, que en la actualidad son de suma importancia en el mundo de la tecnología.
Powered by Facebook Comments
Feb 16, 2019 0
Feb 15, 2019 0
Feb 14, 2019 0
Feb 13, 2019 0
Feb 16, 2019 0
Feb 15, 2019 0
Feb 12, 2019 0
Feb 11, 2019 0
Feb 16, 2019 0
Feb 15, 2019 0
Feb 14, 2019 0
Feb 12, 2019 0
Feb 08, 2019 0