- Notas relacionadas
- Primeros pasos
- Instalación y configuración
- Proyectos de automatización
- Acerca de la publicación de proyectos de automatización
- Diseñar automatizaciones
- Gestionar paquetes de actividades
- Configuración de los Ajustes del Proyecto de Actividades
- Firma de paquetes
- Control
- Importar entidades
- Experiencia de diseño moderna
- Vincular un proyecto a una idea en Automation Hub
- Usar Data Manager
- Dependencias
- Tipos de flujos de trabajo
- Flujo de control
- Comparación de archivos
- Mejores prácticas de automatización
- Integración del control de código fuente
- Depuración
- Registro
- La herramienta de diagnóstico
- Analizador de flujo de trabajo
- Acerca del analizador de flujo de trabajo
- ST-NMG-001: convención sobre nombres de variables
- ST-NMG-002: convención de nombres de argumentos
- ST-NMG-004: duplicación de nombres de visualización
- ST-NMG-005: anulación de variables
- ST-NMG-006: argumentos de anulación de variables
- ST-NMG-008: longitud variable excedida
- ST-NMG-009: variables de datos prefijados
- ST-NMG-011: argumentos de prefijo Datatable
- ST-NMG-012: valores predeterminados de los argumentos
- ST-NMG-016: longitud del argumento excedida
- ST-NMG-017: el nombre de la clase coincide con el espacio de nombres predeterminado
- ST-DBP-002: recuento de Argumentos elevado
- ST-DBP-003: bloque de Catch vacío
- ST-DBP-007: múltiples capas de diagramas de flujo
- ST-DPB-010: varias instancias de [flujo de trabajo] o [caso de prueba]
- ST-DBP-020: propiedades de salida no definidas
- ST-DBP-021: tiempo de espera codificado
- ST-DBP-023: flujo de trabajo vacío
- ST-DBP-024: comprobación de actividad de persistencia
- ST-DBP-025: requisito previo para la serialización de variables
- ST-DBP-026: retraso en el uso de la actividad
- ST-DBP-027: mejor práctica de persistencia
- ST-DBP-028: requisito de serialización de argumentos
- ST-USG-005: argumentos de actividad codificados
- ST-USG-009: variables no utilizadas
- ST-USG-010: dependencias sin utilizar
- ST-USG-014: restricciones de los paquetes
- ST-USG-020: mensajes de registro mínimos
- ST-USG-024: guardado sin usar para más adelante
- ST-USG-025: uso incorrecto de los valores guardados
- ST-USG-026: restricciones de actividad
- ST-USG-027: paquetes necesarios
- ST-USG-028: Restringir la invocación de plantillas de archivo
- ST-USG-032 - Etiquetas obligatorias
- ST-USG-034 - URL Automation Hub
- Variables
- Argumentos
- Espacios de nombres importados
- Automatizaciones codificadas
- Introducción
- Registrar servicios personalizados
- Contextos Antes y Después
- Generando código
- Generar casos de prueba codificados a partir de casos de prueba manuales
- Automatización atendida basada en desencadenadores
- Grabación
- Elementos de la IU
- Selectores
- Repo. de objetos
- Extracción de datos
- Automatización de imágenes y texto
- Acerca de la automatización de imágenes y texto
- Actividades con el ratón y el teclado
- Ejemplo de uso de la automatización de ratón y teclado
- Actividades de texto
- Ejemplo de uso de la automatización de texto
- Actividades de OCR
- Actividades de imagen
- Ejemplo de uso de la automatización de OCR y la automatización de imágenes
- Automatizar las tecnologías de Citrix
- Automatización RDP
- Automatización de VMware Horizon
- Automatización de Salesforce
- Automatización SAP
- Automatización de IU de macOS
- La herramienta ScreenScrapeJavaSupport
- El protocolo WebDriver
- Extensiones
- Acerca de las extensiones
- Herramienta SetupExtensions
- UiPathRemoteRuntime.exe no se está ejecutando en la sesión remota
- UiPath Remote Runtime impide que la sesión de Citrix pueda cerrarse
- UiPath Remote Runtime provoca una fuga de memoria
- Las versiones de UiPath Remote Runtime y UiPath Remote Runtime no coinciden
- La extensión de UiPath necesaria no está instalada en la máquina remota
- Configuración de la resolución de la pantalla
- Directivas de grupo de Chrome
- No se puede comunicar con el navegador
- La extensión de Chrome se elimina automáticamente
- Es posible que la extensión se haya dañado
- Comprueba si la extensión para Chrome está instalada y habilitada
- Check if ChromeNativeMessaging.exe is running
- Check if ComSpec variable is defined correctly
- Habilitar el acceso a las URL de archivos y el modo de incógnito
- Multiple browser profiles
- Group Policy conflict
- Known issues specific to MV3 extensions
- Lista de extensiones para Chrome
- Extensión de Chrome en Mac
- Directivas de grupo de Edge
- No se puede comunicar con el navegador
- La extensión de Edge se elimina automáticamente
- Es posible que la extensión se haya dañado
- Check if the Extension for Microsoft Edge is installed and enabled
- Check if ChromeNativeMessaging.exe is running
- Check if ComSpec variable is defined correctly
- Enable access to file URLs and InPrivate mode
- Multiple browser profiles
- Group Policy conflict
- Known issues specific to MV3 extensions
- Lista de extensiones para Edge
- Extensión para Safari
- Extensión para VMware Horizon
- Extensión para Amazon WorkSpaces
- Complemento SAP Solution Manager
- Add-in de Excel
- Conjunto de pruebas - Estudio
- Solución de problemas
- Acerca de la resolución de problemas
- Compatibilidad y limitaciones de Microsoft App-V
- Solución de problemas de Internet Explorer x64
- Problemas de Microsoft Office
- Identificación de elementos de la interfaz de usuario en PDF con opciones de accesibilidad
- Reparar Soporte Active Accessibility
- Validation of large Windows-legacy projects takes longer than expected
Acerca de los selectores
Para automatizar acciones específicas en la interfaz de usuario, es necesario interactuar con varias ventanas, botones, listas desplegables y muchos otros. La identificación de los elementos de la interfaz de usuario se realiza, entre otras cosas, a través de su posición en la pantalla, pero esto puede ser poco fiable.
Para solucionar este problema, Studio recurre a lo que llamamos selectores. Estos almacenan los atributos de un elemento de la interfaz gráfica de usuario y sus matrices, en forma de fragmento XML.
La mayoría de las veces, los selectores son generados automáticamente por Studio y no requieren más información por tu parte, especialmente si las aplicaciones que intentas automatizar tienen una interfaz de usuario estática.
No obstante, en algunos programas de software existen diseños cambiantes y nodos de atributos con valores volátiles, como es el caso de algunas aplicaciones web. Studio, por su parte, no puede predecir estos cambios y, por lo tanto, es posible que tenga que generar manualmente algunos selectores.
Un selector tiene la siguiente estructura:
<node_1/><node_2/>...<node_N/>
<node_1/><node_2/>...<node_N/>
El último nodo representa el elemento de GUI que le interesa y todos los anteriores representan los elementos principales de ese elemento. <node_1> generalmente se denomina nodo raíz y representa la ventana superior de la aplicación.
En cada uno de los nodos hay uno o varios atributos que le ayudan a identificar correctamente un nivel específico de la aplicación seleccionada.
Cada nodo tiene el siguiente formato:
<ui_system attr_name_1='attr_value_1' ... attr_name_N='attr_value_N'/>
<ui_system attr_name_1='attr_value_1' ... attr_name_N='attr_value_N'/>
En cada atributo se asigna un valor. Es importante elegir atributos con un valor constante. Si el valor de un atributo cambia cada vez que se inicia la aplicación, el selector no podrá identificar correctamente el elemento.
Los selectores se muestran en el panel de propiedades de las actividades, en Entrada > Destino > Selector. En todas las actividades relacionadas con los elementos gráficos aparece esta propiedad.
La ventana Opciones de selección te permite seleccionar y editar un destino. Para acceder a esta ventana, en el panel del Diseñador de flujo de trabajo, haz clic en el botón Opciones en el cuerpo de una actividad y selecciona Indicar destino en pantalla o Editar destino.
La ventana de Editor de Selectores te permite ver el selector generado automáticamente y editarlo, así como sus atributos. Para acceder a esta ventana, utiliza el botón de puntos suspensivos junto al campo Selector, en el panel de propiedades.
Opción |
Descripción |
---|---|
Validar |
En este botón se muestra el estado del selector comprobando la validez de la definición del mismo y la visibilidad del elemento de destino en la pantalla. El botón Validar tiene tres estados:
El botón está relacionado con los estados de validación de UI Explorer. |
Indicar elemento |
Indica un nuevo elemento de la interfaz de usuario que sustituye al anterior. |
Reparar |
Permite volver a indicar el mismo elemento de interfaz de usuario de destino y reparar el selector. Este proceso no sustituye por completo al selector anterior. El botón está disponible solo cuando el selector no es válido. |
Resaltar |
Coloca el elemento de destino al primer plano. Esta opción permanece encendida hasta que se desactiva con un clic. El botón solo se habilita si el selector es válido. |
Editar atributos |
Incluye todos los componentes de la aplicación necesarios para identificar la actividad de destino (una ventana, un botón, etc.). Esta sección se puede editar. |
Selector de edición |
Contiene el selector actual. Esta sección se puede editar. |
Abrir en Explorador de IU |
Inicia el explorador de la interfaz de usuario. Se habilita la opción solo para los selectores válidos. |
En las siguientes tablas se presenta la compatibilidad entre las etiquetas y los atributos utilizados para construir selectores y la capacidad del selector:
Atributo |
Completo |
Expresiones regulares |
Sensible a las mayúsculas y minúsculas |
---|---|---|---|
app |
|
|
|
cls |
|
|
|
title |
|
|
|
aaname |
|
|
|
ctrlname (WinForms) |
|
|
|
ctrlid (WinForms) |
|
|
|
idx |
|
|
|
tid |
|
|
|
pid |
|
|
|
isremoteapp |
|
|
|
aastate |
|
|
|
sapClient (SAP) |
|
|
|
sapLanguage (SAP) |
|
|
|
sapProgram (SAP) |
|
|
|
sapScreen (SAP) |
|
|
|
sapSession (SAP) |
|
|
|
sapSysName (SAP) |
|
|
|
sapSysNumber (SAP) |
|
|
|
sapSysSessionId (SAP) |
|
|
|
sapTransaction (SAP) |
|
|
|
sapUser (SAP) |
|
|
|
Atributo |
Completo |
Expresiones regulares |
Sensible a las mayúsculas y minúsculas |
---|---|---|---|
url |
|
|
|
htmlwindowname |
|
|
|
title |
|
|
|
class |
|
|
|
app |
|
|
|
idx |
|
|
|
pid |
|
|
|
tid |
|
|
|
excludehwnd |
|
|
|
bsid (Browser Session ID) |
|
|
|
isremoteapp |
|
|
|
Los atributos tag e idx utilizan una cadena de valores. Todos los demás atributos WEBCTRL tienen valores dinámicos.
Atributo |
Completo |
Expresiones regulares |
Sensible a las mayúsculas y minúsculas |
---|---|---|---|
tag |
|
|
|
idx |
|
|
|
aaname |
|
|
|
name |
|
|
|
id |
|
|
|
parentid |
|
|
|
class |
|
|
|
css-selector |
|
|
|
innertext |
|
|
|
visibleinnertext |
|
|
|
isleaf |
|
|
|
parentclass |
|
|
|
parentname |
|
|
|
src |
|
|
|
href |
|
|
|
tableCol |
|
|
|
tableRow |
|
|
|
colName |
|
|
|
rowName |
|
|
|
aria-label |
|
|
|
aria-labelledby |
|
|
|
Atributo |
Completo |
Expresiones regulares |
Sensible a las mayúsculas y minúsculas |
---|---|---|---|
Rol |
|
|
|
name |
|
|
|
automationid |
|
|
|
labeledby |
|
|
|
aastate |
|
|
|
virtualname |
|
|
|
text |
|
|
|
rowName |
|
|
|
idx |
|
|
|
Atributo |
Completo |
Expresiones regulares |
Sensible a las mayúsculas y minúsculas |
---|---|---|---|
accelkey (Accelerator Key) |
|
|
|
acskey (Access Key) |
|
|
|
automationid |
|
|
|
cls |
|
|
|
helpText |
|
|
|
legacyAccHelp (Legacy Accessible Help) |
|
|
|
enabled |
|
|
|
kbfocus (Is Keyboard Focusable) |
|
|
|
ispwd (Is Password) |
|
|
|
itemstatus |
|
|
|
itemtype |
|
|
|
rtid (Runtime ID) |
|
|
|
Rol |
|
|
|
name |
|
|
|
pid |
|
|
|
tableRow |
|
|
|
tableCol |
|
|
|
rowName |
|
|
|
colName |
|
|
|
idx |
|
|
|
Atributo |
Completo |
Expresiones regulares |
Sensible a las mayúsculas y minúsculas |
---|---|---|---|
Rol |
|
|
|
name |
|
|
|
virtualname |
|
|
|
javastate |
|
|
|
tableRow |
|
|
|
tableCol |
|
|
|
rowName |
|
|
|
colName |
|
|
|
idx |
|
|
|
Atributo |
Completo |
Expresiones regulares |
Sensible a las mayúsculas y minúsculas |
---|---|---|---|
id |
|
|
|
leafid Dicho atributo no se expone en el panel de Atributos porque es mutuamente excluyente con el atributo id. Puedes agregar manualmente. |
|
|
|
tableRow |
|
|
|
tableCol |
|
|
|
colName |
|
|
|
relpath |
|
|
|
itemId |
|
|
|
Ten en cuenta que la etiqueta Silverlight no admite las funciones Fuzzy, RegEx y Case-Sensitive.