Diferenciar 2 ventanas del mismo software

Hola, muy buenos días o muy buenas tardes dependiendo de donde me lean.

Les explico el caso, me encuentro trabajando con Citrix, y existía una versión previa de un workflow que hacía la diferencia entre 2 ventanas con las mismas características (ventanas iniciales de una misma aplicación) a través de la actividad “element exists”, a continuación se detallarán pasos para una mejor comprensión.

1: Se abre una aplicación y se navega en ella (se llama a una segunda ventana, dependiente del flujo que deja inaccesible la ventana inicial y para acceder a la primera es necesario cerrar la segunda).

2: Se vuelve a abrir la misma aplicación pero se establece en la ventana inicial solamente y en robot debe de intentar captarla si es que existe, caso contrario, quiere decir que sólo se ha abierto una vez la aplicación y es necesario abrirla una segunda vez. Se necesita abrir por segunda vez, ya que en esta instancia es necesario seguir otro flujo en el sistema tratado, y lo que se obtenga en este flujo es utilizado para determinar el flujo a seguir en la ventana del punto 1.

El worflow existente hasta ahora, utilizaba la actividad “element exist” que como bien no era accesible la ventana inicial de la publicación abierta en el punto 1 (ya que existía una ventana dependiente que no permite acceder a ella), fácilmente sabía si existía la ventana principal de la aplicación abierta en el punto 2, ya que se enfocaba en tratar de encontrar sólo a esta. Ahora con una actualización, la actividad “element exist” está realmente haciendo lo que detalla su nombre, y al intentar correr el workflow no es capaz de seguir el flujo, debido a que ahora para el robot, existen 2 ventanas iniciales, una accesible y la otra no, ¡¡¡pero existen!!!, por lo cual está fallando la lógica que existía y asumo el robot no sabe por cuál de las 2 preguntar, por lo que lanza un error cuando termina el tiempo máximo de espera para la captación de esta ventana.

Mi duda es, si hay alguna forma de poder hacer diferencia entre las 2 ventanas principales (entre la accesible y la no accesible), ejemplo… si existe este elemento y además es accesible … hacer el algoritmo que se requiere.

Agradezco cualquier idea, ya que la solución que se me había ocurrido, consta de contar ventanas abiertas de la misma app y trabajar con eso.

Hola @anyelo_aravena ,

Una duda, ¿estás con UiPath dentro de Citrix o fuera? Si estas utilizando element exists imagino que estarás dentro y puedes detectar todos los elementos perfectamente.

Si estas dentro se me ocurren varias cosas, dices que las ventanas son iguales, ¿no cambia nada del título? si cambia el titulo siempre puedes buscar el título en concreto de la segunda ventana y si no existe abrirla.
Por otro lado, si ambas ventanas se llaman igual imagino que el contenido de ambas ventanas no serán iguales ¿no? Debería existir algún elemento, texto, botón, imagen, logo o algo que distinga una ventana de la otra, en este caso puedes especificar un poco mas el element exists e indicar ese elemento de la segunda ventana que pueda diferenciarlo para saber si está abierto o no.

Saludos

Hola.

En efecto me enfoqué en ese último punto para dar solución al conflicto, ya que la diferencia radica en un botón que se deshabilita en una y en la otra no, por lo que reconocerlo mediante imagen fue la solución.

Se agradece el comentario, saludos.

Hola! @anyelo_aravena Que tal te fue con eso? … se me ocurre que captures el error si pasa eso, y al capturar el error te cambies de ventana con el teclado dado que es citrix …seria mejor con alt+tab.

Comenta si lo solucionaste de alguna otra forma …

Hola @carmen, la solución se obtuvo al final con reconocimiento de imágenes, ya que la ventana inicial del sistema, posee íconos activados, los cuales se encuentran deshabilitados en la ventana que ya se estaba trabajando. Había pensado igual en Alt + Tab, pero existen ventanas de navegador abiertas, por lo que se tendrían que tomar en cuenta muchas posibilidades en ese caso, saludos.

que bueno que hayas encontrado una solucion :smiley:

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.