- Release Notes
- Getting Started
- Setup and Configuration
- Automation Projects
- Dependencies
- Types of Workflows
- Control Flow
- File Comparison
- Automation Best Practices
- Source Control Integration
- Debugging
- Logging
- The Diagnostic Tool
- Workflow Analyzer
- About Workflow Analyzer
- ST-NMG-001 - Variables Naming Convention
- ST-NMG-002 - Arguments Naming Convention
- ST-NMG-004 - Display Name Duplication
- ST-NMG-005 - Variable Overrides Variable
- ST-NMG-006 - Variable Overrides Argument
- ST-NMG-008 - Variable Length Exceeded
- ST-NMG-009 - Prefix Datatable Variables
- ST-NMG-011 - Prefix Datatable Arguments
- ST-NMG-012 - Argument Default Values
- ST-NMG-016 - Argument Length Exceeded
- ST-NMG-017 - Class name matches default namespace
- ST-DBP-002 - High Arguments Count
- ST-DBP-003 - Empty Catch Block
- ST-DBP-007 - Multiple Flowchart Layers
- ST-DPB-010 - Multiple instances of [Workflow] or [Test Case]
- ST-DBP-020 - Undefined Output Properties
- ST-DBP-021 - Hardcoded Timeout
- ST-DBP-023 - Empty Workflow
- ST-DBP-024 - Persistence Activity Check
- ST-DBP-025 - Variables Serialization Prerequisite
- ST-DBP-026 - Delay Activity Usage
- ST-DBP-027 - Persistence Best Practice
- ST-DBP-028 - Arguments Serialization Prerequisite
- ST-USG-005 - Hardcoded Activity Arguments
- ST-USG-009 - Unused Variables
- ST-USG-010 - Unused Dependencies
- ST-USG-014 - Package Restrictions
- ST-USG-017 - Invalid parameter modifier
- ST-USG-020 - Minimum Log Messages
- ST-USG-024 - Unused Saved for Later
- ST-USG-025 - Saved Value Misuse
- ST-USG-026 - Activity Restrictions
- ST-USG-027 - Required Packages
- ST-USG-028 - Restrict Invoke File Templates
- ST-USG-032 - Required Tags
- ST-USG-034 - Automation Hub URL
- Variables
- Arguments
- Imported Namespaces
- Coded automations
- Introduction
- Registering custom services
- Before and After contexts
- Generating code
- Generating coded test case from manual test cases
- Trigger-based Attended Automation
- Recording
- UI Elements
- Selectors
- Object Repository
- Data Scraping
- Image and Text Automation
- Citrix Technologies Automation
- RDP Automation
- VMware Horizon Automation
- Salesforce Automation
- SAP Automation
- macOS UI Automation
- The ScreenScrapeJavaSupport Tool
- The WebDriver Protocol
- Extensions
- About extensions
- SetupExtensions tool
- UiPathRemoteRuntime.exe is not running in the remote session
- UiPath Remote Runtime blocks Citrix session from being closed
- UiPath Remote Runtime causes memory leak
- UiPath.UIAutomation.Activities package and UiPath Remote Runtime versions mismatch
- The required UiPath extension is not installed on the remote machine
- Screen resolution settings
- Group Policies
- Cannot communicate with the browser
- Chrome extension is removed automatically
- The extension may have been corrupted
- Check if the extension for Chrome is installed and enabled
- Check if ChromeNativeMessaging.exe is running
- Check if ComSpec variable is defined correctly
- Enable access to file URLs and Incognito mode
- Multiple browser profiles
- Group Policy conflict
- Known issues specific to MV3 extensions
- List of extensions for Chrome
- Chrome Extension on Mac
- Group Policies
- Cannot communicate with the browser
- Edge extension is removed automatically
- The extension may have been corrupted
- 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
- List of extensions for Edge
- Extension for Safari
- Extension for VMware Horizon
- Extension for Amazon WorkSpaces
- SAP Solution Manager plugin
- Excel Add-in
- Test Suite - Studio
- Troubleshooting
- About troubleshooting
- Assembly compilation errors
- Microsoft App-V support and limitations
- Internet Explorer X64 troubleshooting
- Microsoft Office issues
- Identifying UI elements in PDF with Accessibility options
- Repairing Active Accessibility support
- Validation of large Windows-legacy projects takes longer than expected
Studio User Guide
About Object Repository
The Object Repository ensures the management, reusability, and reliability of UI elements by capturing them as objects in a DOM-like repository, sharable across projects. It allows for creating and reusing UI taxonomies inside and across automation projects. With Object Repository you can build a UI API for your application and share it with your team within minutes.
The key features of the Object Repository are:
- UI elements across the project are managed, updated, and modified from a centralized place.
- View a list of all your UI activities inside your process by using the UI Activities tab inside Object Repository panel.
- Quickly capture elements you need in your automation with the Capture Elements wizard.
- increased selector reliability with the help of the Capture Elements recorder that captures elements, together with their anchors.
- With the help of anchors, objects keep their reliability in case the application received a slightly new UI.
- Drag-and-drop elements from the Object Repository panel.
- Objects are reusable in local project or across projects when packaged as libraries.
-
Upgrade application and process UI elements in one go with UI libraries.
When the Object Repository enforced toggle is set to Yes, activities part of the UIAutomation pack need to reference elements from the Object Repository.
The classic UI Automation activities are hidden by default. However, they are still available under the Classic category in the Activities panel and can be added to a project from the Activities panel or the Add activity search bar.
UI descriptors
A UI descriptor is a superset of selectors. It holds information for uniquely identifying elements on the screen.
UI descriptors are extracted from activities in the workflow and added to a structured schema that groups them by applications, application versions, screens, and UI elements. Out of this taxonomy structure, only screens and elements hold descriptor information. The rest are used for grouping and their role is to ensure upgrades between versions of an application.
UI descriptors can be part of:
- One project for wide reuse.
- Snippets repositories for testing purposes.
- UI libraries for global cross-project sharing.
UI elements
UI elements contain full or partial element selectors, anchor selectors, screen and element image capture context, and other metadata that describes the element on the screen.
Screens
Screens are UI scopes that are either extracted from activities inside the workflow or are generated at element capture time. A screen groups together multiple elements belonging to the same screen.
UI applications
A UI application is a targeted application that can have multiple versions and each version can have multiple screens. Applications can be of multiple types:
- Desktop/Web application
- Mobile application
For defining mobile applications, you need to use UiPath.MobileAutomation.Activities package.
The structure of UI libraries created with the Object Browser has the following hierarchy: Application > Version > Screen > UI Element.
UI libraries
A UI library is an encapsulation of elements grouped by applications, application versions, and screens. Elements you define can be extracted as a UI library, and after publishing can be installed in other projects as a dependency.
A UI library may contain several applications but can contain only one version of a certain application. This mechanism ensures that when you upgrade a dependency, you also upgrade the application version you were using inside your projects.
When creating a new version of an existing application, you need to reuse the existing elements. Elements have unique identifiers that are used when referenced from activities. You can always change the contents of an element (descriptors and other metadata).
The Object Repository enables you to reuse your UI elements across projects:
- All locally stored elements can be reused at project level.
- For testing purposes, you can use Snippets panel to save into and pass applications between projects. From Snippets you can add applications to your local project repository.
-
Extract elements into UI libraries and install them as a dependency into your projects when you want to reuse at a global level. You can also take a reusability-first approach and start by creating UI libraries with the elements you will need across all your automation projects.
The object repository has a tree structure where each node is an object representing screens or elements, all hierarchical under the application. The structure is the following:
- Application - it can be one of two types: mobile or desktop/web, depending on what technology is used for UI Automation.
- Version - applications can have multiple versions.
- Screen - top-level window of an application version that can only be created under an app version.
- UI element - an object on the screen with a descriptor and metadata. It can be of multiple types.
UI elements can be freely rearranged in the tree structure, as long as they remain under their designated screen. To move, simply drag and drop the element to the desired location inside the tree.
Elements can also be part of other elements and they can also be grouped under containers with no UI specific role. This allows defining a UI structure that is as close as possible to what the user sees on screen.