- 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-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
- About Object Repository
- Creating an Object Repository
- Reusing objects and UI libraries
- Synchronize Object Repository tool
- Data Scraping
- Image and Text Automation
- Automating Citrix Technologies
- 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 packages and UiPath Remote Runtime versions mismatch
- The required UiPath extension is not installed on the remote machine
- Screen resolution settings
- Chrome 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
- Edge 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
Reusing objects and UI libraries
We recommend starting to build your sharable UI elements directly inside libraries, when you know that your internal applications will be automated multiple times. But even if you did not do so, you can always extract them from your existing processes.
When you start building a UI Library, you start by creating a simple Library process. To capture your application elements follow the steps described in Creating an Object Repository.
The project's local repository can be extracted to a UI library project. This allows publishing the library and reusing the elements from it by adding it as a dependency to your process. Click on the Extract as UI Library Project icon in the Descriptors tab and provide a name for your library in the New UI Library window.
Click Create and the descriptors are extracted.
Click Yes to close the current project and open the extracted descriptors in a library project, or No to return to the current workflow.
After opening the extracted UI library, you can publish it and use it in other workflows.
.nupkg
package is created which can be installed in another project as a dependency and its descriptors used as selectors in other
activities. Such packages may be published to Orchestrator and shared across your organization.
You can publish, the entire workflow together with its UI library, or the extracted UI library.
Publishing the entire workflow or the extracted UI library is done in the same way as for any other process. Read more about Publishing Projects.
Create a process in Studio. From the Manage Packages window, go to the feed where you published your UI Library and install it to your current project, just as you would an activity package. The UI Library is added as a dependency to your project, and its descriptors are visible in the Object Repository panel, under UI Libraries. Please note that one UI Library can contain a single version of a UI Descriptor and a single version of an application.
The descriptors in the UI Libraries section can also be added to the local project. To do this, right-click the application name and choose Add to UI Objects.
Whenever you need to use a Screen or UI Element from the project's Descriptors panel or the UI Libraries section, simply drag and drop it on top of an activity that supports Object Repository. The activity automatically picks up the descriptor.
Using UI libraries, you can update selectors in a process in one go whenever the application you're automating receives a new UI, as it sometimes happens with desktop applications or websites.
- Inside a library project, create the first version of the object repository a library with elements from an application. Publish the library when done.
- Use the objects inside activities as part of a process by installing the library as a dependency.
- In the initial library, update the descriptor for each screen or element with the new app UI. It is important not to delete the elements, but rather update their selectors so that the link between element and select is preserved.
- Publish the library with a higher version and install it in the initial process.
-
The descriptors are automatically updated inside activities.
When an object repository is created, the metadata associated with the descriptors are mapped in the Project panel, as part of the current project, be it a process or a UI library.
When versioning the project, the object repository is also added to the TFS, SVN, or GIT repository together with the other project files. You can add new descriptors to the repository, and then check in the changes as you would do with other projects. Read more About Version Control in Studio.
Objects
folder in the Project panel and select Check In, the Check in Changes window opens, displaying the same hierarchy of elements as in the Object Repository.
Snippets can store Applications for testing purposes. The entire local object repository from a project can be added to the Snippets panel for later use in other local projects, be they processes or libraries. Right-click the application and select Add to Snippets. Applications are added together with child screens and UI elements.
From the Snippets panel, you can edit, and add descriptors to your project via the context menu option available in the application version menu. Adding screens and UI elements to your project can be done via the same context menu available for each of the elements.
Dragging and dropping elements from the Snippets Panel is not a supported feature. Referencing elements from Snippets Panel is not supported either. Snippets Panel is only a testing capability which allows saving elements on your disk. From there, elements can be then added to your local repository and vice-versa. As a result, any added resource, be it a descriptor, a screen, a version of an application, or a whole application can be removed from the Snippets panel, without affecting the existence of that resource in other areas of the project, such as the Object Repository panel.
The Snippets panel plays the role of an "on-disk" personal object repository that can hold elements from any of your local projects and make them available for other projects. As an added benefit, since Snippets is never involved in referencing elements or runtime execution, you can store here multiple versions of the same application. To create multiple versions of an application you can right-click on the application, choose Create Version and then copy elements from the previous version to ensure you maintain element uniqueness between versions.
Fill in the details of the new version in the New Application Version Inside Snippets dialog, then click Create version.
You can copy the whole tree structure to and from the Object Repository, Snippets panel, or in between Studio instances, using the Copy Tree options available at right-click in the Object Repository and the Snippets panel.
In addition, the Copy option or the combination of keyboard shortcuts, Ctrl + C and Ctrl + V shortcuts allows you to copy individual elements from the repository, and paste them in the above-mentioned locations.
Using the Find References option you can check whether the UI Element or UI Descriptor from your library is used throughout the project.
To do so, right-click a UI Element in the Descriptors tab from any of the Objects Browser panels (Project UI Descriptors, UI Libraries, or Snippets - UI Descriptors) and select Find References. The results are displayed in the Find References panel. Double-clicking on a result focuses the activity that uses the UI Element.