• RPAPIX Studio
  • ESSpanish
  • SELECTOR XPHAT A PARTIR DE LA ACTIVIDAD "BUSCAR ELEMENTOS UI EN LA PANTALLA"

Buen día, comunidad de Pix.

Estoy trabajando en la automatización de un software de escritorio y estoy utilizando la actividad "Buscar elementos UI en la pantalla". Funciona bien, pero el problema que presento es que, al usar el método .GetXPathToElement(), este devuelve un XPath con parámetros innecesarios, lo que provoca que falle.

¿Alguien sabe si este método permite alguna forma de parametrización para obtener solo los parámetros necesarios? Esto es importante porque el XPath lo utilizo para obtener un elemento en pantalla y tomarle una captura. Sin embargo, la actividad "Tomar captura de pantalla" solo acepta XPath y no un UIElement como entrada.

A continuación, muestro los ejemplos que tengo:

XPHAT obtenido con la actividad "BUSCAR ELEMNTO UI": /Window[@ClassName='ThunderRT6MDIForm' and @ControlType='Window' and @FrameworkId='Win32' and @IsDialog='False' and @IsEnabled='True' and @IsKeyboardFocusable='True' and @IsOffscreen='False' and @IsPassword='False' and @LocalizedControlType='ventana' and @Name='AC Administración de Clientes - [Facturas y Pagos]' and @ProcessId='6584' and @LegacyIAccessiblePattern_ChildId='0' and @LegacyIAccessiblePattern_Name='AC Administración de Clientes - [Facturas y Pagos]' and @TransformPattern_CanMove='True' and @TransformPattern_CanResize='True' and @TransformPattern_CanRotate='False' and @WindowPattern_CanMaximize='True' and @WindowPattern_CanMinimize='True' and @WindowPattern_IsModal='False' and @WindowPattern_IsTopmost='False'][1]/Pane[@AutomationId='3244' and @ClassName='MDIClient' and @ControlType='Pane' and @FrameworkId='Win32' and @IsDialog='False' and @IsEnabled='True' and @IsKeyboardFocusable='True' and @IsOffscreen='False' and @IsPassword='False' and @LocalizedControlType='panel' and @Name='Área de trabajo' and @ProcessId='6584' and @LegacyIAccessiblePattern_ChildId='0' and @LegacyIAccessiblePattern_Name='Área de trabajo'][1]/Window[@AutomationId='32770' and @ClassName='ThunderRT6FormDC' and @ControlType='Window' and @FrameworkId='Win32' and @IsDialog='False' and @IsEnabled='True' and @IsKeyboardFocusable='True' and @IsOffscreen='False' and @IsPassword='False' and @LocalizedControlType='ventana' and @Name='Facturas y Pagos' and @ProcessId='6584' and @LegacyIAccessiblePattern_ChildId='0' and @LegacyIAccessiblePattern_Name='Facturas y Pagos' and @TransformPattern_CanMove='False' and @TransformPattern_CanResize='False' and @TransformPattern_CanRotate='False' and @WindowPattern_CanMaximize='True' and @WindowPattern_CanMinimize='True' and @WindowPattern_IsModal='False' and @WindowPattern_IsTopmost='False'][1]/Pane[@AutomationId='4' and @ClassName='ThunderRT6PictureBoxDC' and @ControlType='Pane' and @FrameworkId='Win32' and @IsDialog='False' and @IsEnabled='True' and @IsKeyboardFocusable='True' and @IsOffscreen='False' and @IsPassword='False' and @LocalizedControlType='panel' and @ProcessId='6584' and @LegacyIAccessiblePattern_ChildId='0']/Pane[@ClassName='ListView20WndClass' and @ControlType='Pane' and @FrameworkId='Win32' and @IsDialog='False' and @IsEnabled='True' and @IsKeyboardFocusable='True' and @IsOffscreen='False' and @IsPassword='False' and @LocalizedControlType='panel' and @ProcessId='6584' and @LegacyIAccessiblePattern_ChildId='0' and @ScrollPattern_HorizontallyScrollable='True' and @ScrollPattern_VerticallyScrollable='False'][4]

XPHAT obtenido con las herramienta de desarrollo de pix: @"/Window[@ClassName = 'ThunderRT6MDIForm' and @Name = 'AC Administración de Clientes - [Facturas y Pagos]']/Pane[@AutomationId = '3244' and @ClassName = 'MDIClient' and @Name = 'Área de trabajo']/Window[@AutomationId = '32770' and @ClassName = 'ThunderRT6FormDC' and @Name = 'Facturas y Pagos']/Pane[@AutomationId = '4' and @ClassName = 'ThunderRT6PictureBoxDC']/Pane[@ClassName = 'ListView20WndClass']"

13 días más tarde

Hola
Por lo que entiendo, estás utilizando un XPath para buscar un elemento y luego obtener el propio XPath del mismo. Sin embargo, esta estrategia no es la más óptima.

Te recomiendo optimizar el XPath principal desde el momento en que realizas la captura de pantalla. Así evitas realizar búsquedas adicionales innecesarias y aumentas la eficiencia del proceso.

Además, es importante tener en cuenta que algunos nodos pueden contener identificadores (ID) que no son estables o pueden cambiar con el tiempo. Por eso, es buena práctica eliminar estos nodos del XPath para asegurar que el selector sea más robusto y menos propenso a fallos ante cambios en la interfaz.

Si ya has validado un XPath que funciona correctamente, puedes agregarlo directamente a la actividad. Para ello, ingresa al editor de XPath y cambia el modo de edición para introducir el XPath directamente. Esto puede ahorrarte tiempo y garantizar la precisión del selector.