Te va a interesar!

6/recent/ticker-posts

Selenium Self Healing: Bitácora del capitán 3

Self healing Automation
Buenas buenas, cómo dicen que les va? Yo me encuentro muy bien, avanzando con esta idea siempre que encuentro un momento para hacerlo!

En el último post al respecto, les contaba que la manera de lidiar con el primer problema iba a ser escribir los atributos en un CSV. Adivinen qué hice? Exactamente eso! Ven? Baby steps...siempre de a poco y probando qué camino es mejor. Ahora...vamos de lleno a los actuales desafíos y qué tácticas estoy cotejando para enfrentarlos!

Nuevos avances, nuevos desafíos...

Desde la última vez, pude hacer que escriba todos los atributos que quiero en un archivo CSV. Además, lo hace siempre en la próxima fila en limpia, cosa de no sobreescribir datos ya que, de momento, no hace falta.
Por otro lado, hice una función que lee el CSV y me devuelve todos los atributos de la fila que le especifico. Esto me va a servir para que, cuando el elemento no sea encontrado por el locator actual, pueda traerme los demás atributos conocidos de antes de él e intentar con los demás para ver si realmente no está más en el html o si cambió el atributo.
Esto es lo hecho hasta el momento y, déjenme decirles...estoy muy contento con los resultados! Ahora queda escribir en la primer columna del CSV el nombre del WebElement ya que, actualmente, está escribiendo solo los atributos, pero necesito un nombre arbitrario mediante el cual identificar a cada uno. Es el más sencillo de los desafíos que tengo por delante. Lo próximo va a ser definir cómo se comporta ante un elemento no encontrado, cómo elige qué atributos usar, cuáles son los mejores para esto, cómo actualizar el atributo que cambió en caso que el elemento sea encontrado...las cosas más complejas y, por ende, divertidas de todo este proyecto!

Los otros chicos populares en la cuadra.

Otras herramientas haciendo cosas similares que estuve mirando son, por un lado, Katalon Studio y, por el otro, testim.io. El primero usa un concepto interesante, que ellos llaman "neighbor Xpath". Lo que hace es definir que elementos tiene antes y después para poder así encontrar el elemento en caso de que cambie el locator que estaba usando. Me pareció llamativo, pero no es para nada similar al método que estoy usando yo, aunque sí que estoy tomando inspiración de otro lado de esta herramienta. Y eso es el Object Repository que usa. Si vieron el video en el canal en el que les hablo brevemente de qué es Katalon y cómo funciona, notarán que usa algo similar a lo que usa UFT para almacenar los WebElements en forma de atributos y propiedades.

La otra herramienta, testim.io, es mucho más hermética en cuanto a cómo funciona y no tengo idea de cómo son sus entrañas, por lo que no puedo hablarles de si es o no similar a lo que estoy haciendo. Pero si fue algo que me llevó a seguir intentando ésto que lo venía queriendo hacer hace tiempo!

Conclusión.

Como les dije en otro post sobre este proyecto: Puede que no llegue a nada, o que sea inútil el intento, pero me llevo mucho aprendido y un entretenimiento que nadie me saca! En el otro lado del espectro, quién dice, capaz funcione de maravilla, quede pulido para un fácil uso y esté lanzando ésto como una librería para que todos ustedes puedan usarla! 
Atentos a próximos posts al respecto, si les gusta el sitio, tutoriales y posts, no olviden suscribirse a la lista de email que cuando lleguemos a más (estamos cerquita!) voy a empezar a mandar novedades y demás cosas que, les aseguro, van a encontrar útiles y no como otro spam genérico. 

Nunca dejen de aprender.

Publicar un comentario

0 Comentarios