- 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-017: modificador de parámetro no válido
- 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
- Automatización de Citrix Technologies
- 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
- El paquete UiPath.UIAutomation.Activities y las versiones de 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
- Group Policies
- 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
- Group Policies
- 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
- Errores de compilación del ensamblado
- 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
Guía de usuario de Studio
Caso de prueba codificado
Los casos de prueba codificados automatizan y validan el comportamiento de la aplicación de forma estructurada. Son similares a los casos de prueba de código bajo y permiten la automatización flexible utilizando código.
- Organización: la fase de organización prepara la aplicación.
- Actuación: la fase de actuación realiza acciones específicas.
- Aserción: la fase de aserción verifica los resultados esperados.
Los casos de prueba codificados también pueden invocar otros flujos de trabajo de código bajo o casos de prueba, lo que permite la reutilización del código. Esta integración permite la creación de escenarios de prueba flexibles.
También puedes aplicar las plantillas de ejecución para los casos de prueba codificados. Consulta Plantillas de ejecución para saber cómo trabajar con las plantillas de ejecución.
Las automatizaciones codificadas presentan un diseño estructurado con espacios de nombres, clases de ayudantes y métodos de punto de entrada. El marco de las automatizaciones codificadas te permite escribir las automatizaciones utilizando el lenguaje de programación C#.
Sigue la estructura detallada de una automatización codificada como se describe en las siguientes secciones.
Al crear una automatización codificada, se genera automáticamente un espacio de nombres utilizando el nombre del proyecto de Studio. Por ejemplo, si tu proyecto de Studio se llama «Mi proyecto», el espacio de nombres de todas las automatizaciones codificadas será «Miproyecto».
Además, si creas una automatización codificada dentro de una carpeta en tu proyecto de Studio, el espacio de nombre será el nombre del proyecto y el nombre de la carpeta. Por ejemplo, si tu proyecto de Studio se llama «Mi proyecto», y la carpeta se llama «lugar», entonces el espacio de nombres será «Myproject.lugar».
CodedWorkflow
parciales del paquete UiPath.CodedWorkflows. Esta clase da a la automatización acceso a las interfaces necesarias para los servicios (iguales a los paquetes de actividades), en función de los paquetes de actividad instalados en tu proyecto.
CodedWorkflow
, creando una relación de tipo CodedAutomationExample : CodedWorkflow
. Esto significa que la clase CodedAutomationExample
hereda los atributos, métodos y funcionalidades de la clase CodedWorkflow
. Esencialmente, puede acceder y utilizar las características definidas en la clase CodedWorkflow
, lo que proporciona una base para la automatización codificada, facilitando la creación y personalización del comportamiento de la automatización.
CodedWorkflow
se declara como clase parcial, lo que te permite ampliar sus funcionalidades definiendo la misma clase parcial CodedWorkflow
en un archivo de código fuente. De esta manera, puedes añadir nuevos campos y métodos para personalizar aún más el comportamiento de tus automatizaciones codificadas. Puedes utilizar este enfoque para implementar una interfaz Antes y Después, específicamente para los casos de prueba codificados.
CodedWorkflow
hereda la clase CodedWorkflowBase
.
CodedWorkflowBase
contiene las funcionalidades integradas que hereda una automatización codificada. Esta clase contiene métodos y propiedades específicas para gestionar las instancias de flujo de trabajo, el acceso en tiempo de ejecución, la gestión de contenedores de servicio y la configuración de contextos de entorno. La clase CodedWorkflowBase
también ofrece otro método independiente para el registro que puedes personalizar tú mismo.
CodedWorkflowBase
.
CodedWorkflowBase
en la siguiente tabla:
Método | Descripción |
---|---|
ICodedWorkflowServices services Nota: te recomendamos utilizar los métodos
Log , BuildClient y RunWorkflow a través de la clase services y sus servicios correspondientes, en lugar de utilizarlos como métodos independientes y fácilmente disponibles.
| Proporciona acceso a los servicios disponibles para flujos de trabajo codificados, como:
|
serviceContainer(ICodedWorkflowServiceContainer) Nota: esto ha sido reemplazado por
ICodedWorkflowServices services . Si sigues utilizando esta sintaxis, obtienes una advertencia que te indica que utilices la nueva sintaxis services.Container .
| Proporciona acceso al contenedor de inyección de dependencias que es específico para el flujo de trabajo codificado actual. Este contenedor, conocido como el contenedor de servicio, te permite recuperar las instancias de servicios que se hayan registrado en él. |
GetRunningJobInformation() | Recupera información sobre el trabajo en ejecución actualmente dentro del contexto del flujo de trabajo codificado. El método accede a la propiedad RunningJobInformation del objeto executorRuntime que contiene información sobre el estado del trabajo, el progreso, los parámetros y las marcas de tiempo.
|
Log(string message, LogLevel level = LogLevel.Info, IDictionary<string, object> additionalLogFields = null) | Añade campos de registro adicionales para registrar los mensajes con los atributos especificados. |
RunWorkflow(string
workflowFilePath, IDictionary<string, object> inputArguments = null, TimeSpan? timeout = null, bool isolated = false,
InvokeTargetSession targetSession = InvokeTargetSession.Current) | Proporciona una estructura para ejecutar un flujo de trabajo dentro del contexto del tiempo de ejecución del flujo de trabajo dado. Puede establecer parámetros, gestionar el posible aislamiento e iniciar la ejecución del flujo de trabajo. La tarea devuelta proporciona los resultados del flujo de trabajo ejecutado, incluidos sus argumentos de salida y entrada/salida. |
RunWorkflowAsync(string
workflowFilePath, IDictionary<string, object> inputArguments = null, TimeSpan? timeout = null, bool isolated = false,
InvokeTargetSession targetSession = InvokeTargetSession.Current) | Proporciona una estructura para ejecutar un flujo de trabajo asíncrono dentro del contexto del tiempo de ejecución del flujo de trabajo dado. Puede establecer parámetros, gestionar el posible aislamiento e iniciar la ejecución del flujo de trabajo. La tarea devuelta proporciona los resultados del flujo de trabajo ejecutado, incluidos sus argumentos de salida y entrada/salida. |
DelayAsync(TimeSpan time) y DelayAsync(int delayMs) | Suspende la ejecución durante un período de tiempo especificado de forma asíncrona. |
Delay(TimeSpan time) y Delay(int delayMs) | Suspende la ejecución durante un período de tiempo especificado. |
HttpClient BuildClient (string scope = "Orchestrator", bool force = true) | Crea un cliente HTTP con un ámbito y un token de acceso especificados. |
RegisterServices (ICodedWorkflowsServiceLocator serviceLocator) | Registra los servicios (paquetes de actividades) en el localizador de servicios del flujo de trabajo codificado. Puedes anularlo cuando quieras inyectar servicios personalizados en el contenedor de inyección de dependencias. Aprende a crear y utilizar servicios personalizados (paquetes de actividades codificadas) aquí. |
Execute()
y se atribuye como Workflow
o TestCase
. Puedes cambiar el nombre del método, siempre que lo atribuyas bien a Workflow
o a TestCase
.
Execute()
( [TestCase]
o [Workflow]
) dentro de un archivo, que hereda la clase Coded Workflow
.
En este método, puedes añadir argumentos de entrada y/o salida, equivalentes a los argumentos In, Out o In/Out en las automatizaciones de código bajo. Consulta el tutorial Trabajar con argumentos de entrada y salida para aprender a utilizar argumentos en las automatizaciones codificadas.
Execute()
.