UiPath Documentation
activities
latest
false
UI Automation activities

Open

Open in the UI Automation coded automation API: opens a desktop application or web browser page to use in UI automation.

Opens a desktop application or web browser page to use in UI automation.

This API is used by calling the UiAutomation service, based on the following format: uiAutomation.API(). For example, uiAutomation.Open().

Definition

Namespace: UiPath.UIAutomationNext.API.Contracts

Assembly: UiPath.UIAutomationNext.API.Contracts (in UiPath.UIAutomationNext.API.Contracts dll)

Overloads

OverloadDescription
Open(String, TargetAppOptions, String, String)Opens a specific desktop application or web page to use in UI automation, identified by the screen name from the Object Repository.
Open(TargetAppModel, TargetAppOptions)Opens a specific desktop application or web page to use in UI automation, identified by the TargetAppModel object.
Open(String, String, String, NAppOpenMode, NWindowResize, NInteractionMode)Opens a specific desktop application or web page to use in UI automation, identified by the screen name from the Object Repository, along with other customizations of the app or web page.

Open(String, TargetAppOptions, String, String)

Opens a specific desktop application or web page to use in UI automation, identified by the screen name from the Object Repository.

Open(
    string screenName,  
    TargetAppOptions targetAppOptions, 
    [string appName],
    [string appVersion])
Open(
    string screenName,  
    TargetAppOptions targetAppOptions, 
    [string appName],
    [string appVersion])

screeName String: The name of the screen you want to focus on, as a String recorded inside the Object Repository.

targetAppOptions: Additional options and settings for attaching to the application or web page:

* `Timeout Double` - Specify a number of seconds for which to wait for the activity to be executed before throwing an error. The default value is 30 seconds. When indicating a window in a Remote Desktop environment, the Timeout default setting is set to 60 seconds.
* `InteractionMode
  NInteractionMode`:
  + `HardwareEvents` - Uses the hardware driver to perform the action. This is the slowest API, it cannot work in the background, but it is compatible with all desktop apps.
  + `Simulate` - Simulates the action using accessibility APIs. Recommended in browser automation, Java apps, or SAP. More reliable than Hardware Events. Sends all text in a single action. Works even if the target application is not in focus. Please test if your target application UI element supports this.
  + `DebuggerApi` - Performs actions using debugger APIs. Works only for Chromium elements. Sends all text in one go. Works even if target app is not in focus.
    For more details, check out this [page](https://docs.uipath.com/studio/docs/chromium-api).
  + `WindowMessages` - Sends the mouse and keyboard input through Win32 messages. Recommended for desktop apps. Usually more reliable than Hardware Events.
    Sends all text in a single action. Works even if target app is not in focus. Please test if your target application UI element supports this.
  + `Background` - Runs actions in the background. Tries to use either Simulate or Chromium API where possible, while complex APIs (image, native text) run as usual, in the foreground. It is highly recommended to use this API with the [Verify Execution](https://docs.uipath.com/activities/other/latest/user-guide/project-settings-ui-automation) feature.
* `OpenMode NAppOpenMode` - choose when to open the app:
  + `Never` (never open the application)
  + `IfNotOpen` (open only if the application is closed, this is the default selection, only works if `FilePath` or `URL`
    are provided)
  + `Always` (open another instance of the application even if one is already open, only works if `FilePath` or `URL` are provided)
* `WindowResize NWindowResize` - choose the size of the window:
  + `None`
  + `Maximize`
  + `Restore`
  + `Minimize`
* `UserDataFolderMode
  BrowserUserDataFolderMode` - The `UserDataFolderMode` you want to set. It is used to start the browser with a specific user data folder.
  + `Automatic` - Picture In Picture mode uses a different folder than the default mode, automatically generated if `UserDataFolderPath` is not set.
  + `DefaultFolder` - Uses the default browser folder, no matter if it runs in the main or PIP session.
  + `CustomFolder` - Uses the folder specified in `UserDataFolderPath` or an auto generated path if `UserDataFolderPath` is not set.
* `UserDataFolderPath String` - The user data folder that the browser uses. Defaults to `%LocalAppData%\UiPath\PIP Browser
  Profiles\BrowserType` if not set.
* `IsIncognito Boolean` - input `True` if you want to open the browser in incognito mode. By default it's set to `False`.
* `WebDriverMode NWebDriverMode` -
  Indicates how the WebDriver is used when opening a new browser session. The following options are available:
  + `Disabled` - Disables the use of
    WebDriver.
  + `WithGUI` - The GUI of the browser is displayed.
  + `Headless` - The browser is launched silently, with no GUI.
* `Timeout Double` - Specify a number of seconds for which to wait for the activity to be executed before throwing an error. The default value is 30 seconds. When indicating a window in a Remote Desktop environment, the Timeout default setting is set to 60 seconds.
* `InteractionMode
  NInteractionMode`:
  + `HardwareEvents` - Uses the hardware driver to perform the action. This is the slowest API, it cannot work in the background, but it is compatible with all desktop apps.
  + `Simulate` - Simulates the action using accessibility APIs. Recommended in browser automation, Java apps, or SAP. More reliable than Hardware Events. Sends all text in a single action. Works even if the target application is not in focus. Please test if your target application UI element supports this.
  + `DebuggerApi` - Performs actions using debugger APIs. Works only for Chromium elements. Sends all text in one go. Works even if target app is not in focus.
    For more details, check out this [page](https://docs.uipath.com/studio/docs/chromium-api).
  + `WindowMessages` - Sends the mouse and keyboard input through Win32 messages. Recommended for desktop apps. Usually more reliable than Hardware Events.
    Sends all text in a single action. Works even if target app is not in focus. Please test if your target application UI element supports this.
  + `Background` - Runs actions in the background. Tries to use either Simulate or Chromium API where possible, while complex APIs (image, native text) run as usual, in the foreground. It is highly recommended to use this API with the [Verify Execution](https://docs.uipath.com/activities/other/latest/user-guide/project-settings-ui-automation) feature.
* `OpenMode NAppOpenMode` - choose when to open the app:
  + `Never` (never open the application)
  + `IfNotOpen` (open only if the application is closed, this is the default selection, only works if `FilePath` or `URL`
    are provided)
  + `Always` (open another instance of the application even if one is already open, only works if `FilePath` or `URL` are provided)
* `WindowResize NWindowResize` - choose the size of the window:
  + `None`
  + `Maximize`
  + `Restore`
  + `Minimize`
* `UserDataFolderMode
  BrowserUserDataFolderMode` - The `UserDataFolderMode` you want to set. It is used to start the browser with a specific user data folder.
  + `Automatic` - Picture In Picture mode uses a different folder than the default mode, automatically generated if `UserDataFolderPath` is not set.
  + `DefaultFolder` - Uses the default browser folder, no matter if it runs in the main or PIP session.
  + `CustomFolder` - Uses the folder specified in `UserDataFolderPath` or an auto generated path if `UserDataFolderPath` is not set.
* `UserDataFolderPath String` - The user data folder that the browser uses. Defaults to `%LocalAppData%\UiPath\PIP Browser
  Profiles\BrowserType` if not set.
* `IsIncognito Boolean` - input `True` if you want to open the browser in incognito mode. By default it's set to `False`.
* `WebDriverMode NWebDriverMode` -
  Indicates how the WebDriver is used when opening a new browser session. The following options are available:
  + `Disabled` - Disables the use of
    WebDriver.
  + `WithGUI` - The GUI of the browser is displayed.
  + `Headless` - The browser is launched silently, with no GUI.

appName String: The name of the application to attach to. This parameter is applicable for desktop applications.

appVersion String: The version of the application to attach to. This parameter is applicable for desktop applications.

Open(TargetAppModel, TargetAppOptions)

Opens a specific desktop application or web page to use in UI automation, identified by the TargetAppModel object.

Open(
    TargetAppModel targetApp,
    [TargetAppOptions targetAppOptions])
Open(
    TargetAppModel targetApp,
    [TargetAppOptions targetAppOptions])

targetApp TargetAppModel: The target application or web page to attach to. It is an object of type TargetAppModel that provides information about the application:

* `Selector` - An XML fragment that stores the attributes of a user interface element.
* `FilePath` - If the application is not a web browser, specifies the full path of the executable file to open.
* `Arguments` - If the application is not a web browser, you can specify parameters to pass to the target application at startup.
* `Url`
  - If the application is a web browser, specifies the URL of the web
  page to open.
* `Title` - The title of the application or browser.
* `Selector` - An XML fragment that stores the attributes of a user interface element.
* `FilePath` - If the application is not a web browser, specifies the full path of the executable file to open.
* `Arguments` - If the application is not a web browser, you can specify parameters to pass to the target application at startup.
* `Url`
  - If the application is a web browser, specifies the URL of the web
  page to open.
* `Title` - The title of the application or browser.

targetAppOptions: Additional options and settings for attaching to the application or web page:

* `Timeout Double` - Specify a number of seconds for which to wait for the activity to be executed before throwing an error. The default value is 30 seconds. When indicating a window in a Remote Desktop environment, the Timeout default setting is set to 60 seconds.
* `InteractionMode NInteractionMode`:
  + `HardwareEvents` - Uses the hardware driver to perform the action. This is the slowest API, it cannot work in the background, but it is compatible with all desktop apps.
  + `Simulate` - Simulates the action using accessibility APIs. Recommended in browser automation, Java apps, or SAP. More reliable than Hardware Events. Sends all text in a single action. Works even if the target application is not in focus. Please test if your target application UI element supports this.
  + `DebuggerApi` - Performs actions using debugger APIs. Works only for Chromium elements. Sends all text in one go. Works even if target app is not in focus.
    For more details, check out this [page](https://docs.uipath.com/studio/docs/chromium-api).
  + `WindowMessages` - Sends the mouse and keyboard input through Win32 messages. Recommended for desktop apps. Usually more reliable than Hardware Events.
    Sends all text in a single action. Works even if target app is not in focus. Please test if your target application UI element supports this.
  + `Background` - Runs actions in the background. Tries to use either Simulate or Chromium API where possible, while complex APIs (image, native text) run as usual, in the foreground. It is highly recommended to use this API with the [Verify Execution](https://docs.uipath.com/activities/other/latest/user-guide/project-settings-ui-automation) feature.
* `OpenMode NAppOpenMode` - choose when to open the app:
  + `Never` (never open the application)
  + `IfNotOpen` (open only if the application is closed, this is the default selection, only works if `FilePath` or `URL` are provided)
  + `Always` (open another instance of the application even if one is already open, only works if `FilePath` or `URL` are provided)
* `WindowResize NWindowResize` - choose the size of the window:
  + `None`
  + `Maximize`
  + `Restore`
  + `Minimize`
* `UserDataFolderMode BrowserUserDataFolderMode`
  - The `UserDataFolderMode` you want to set. It is
  used to start the browser with a specific user data folder.
  + `Automatic` - Picture In Picture mode uses a different folder than the default mode, automatically generated if `UserDataFolderPath` is not set.
  + `DefaultFolder` - Uses the default browser folder, no matter if it runs in the main or PIP session.
  + `CustomFolder` - Uses the folder specified in `UserDataFolderPath` or an auto generated path if `UserDataFolderPath` is not set.
* `UserDataFolderPath String` - The user data folder that the browser uses. Defaults to `%LocalAppData%\UiPath\PIP Browser
  Profiles\BrowserType` if not set.
* `IsIncognito Boolean` - input `True` if you want to open the browser in incognito mode. By default it's set to `False`.
* `WebDriverMode NWebDriverMode` - Indicates how the WebDriver is used when opening a new browser session. The following options are available:
  + `Disabled` - Disables the use of
    WebDriver.
  + `WithGUI` - The GUI of the browser is displayed.
  + `Headless` - The browser is launched silently, with no GUI.
* `Timeout Double` - Specify a number of seconds for which to wait for the activity to be executed before throwing an error. The default value is 30 seconds. When indicating a window in a Remote Desktop environment, the Timeout default setting is set to 60 seconds.
* `InteractionMode NInteractionMode`:
  + `HardwareEvents` - Uses the hardware driver to perform the action. This is the slowest API, it cannot work in the background, but it is compatible with all desktop apps.
  + `Simulate` - Simulates the action using accessibility APIs. Recommended in browser automation, Java apps, or SAP. More reliable than Hardware Events. Sends all text in a single action. Works even if the target application is not in focus. Please test if your target application UI element supports this.
  + `DebuggerApi` - Performs actions using debugger APIs. Works only for Chromium elements. Sends all text in one go. Works even if target app is not in focus.
    For more details, check out this [page](https://docs.uipath.com/studio/docs/chromium-api).
  + `WindowMessages` - Sends the mouse and keyboard input through Win32 messages. Recommended for desktop apps. Usually more reliable than Hardware Events.
    Sends all text in a single action. Works even if target app is not in focus. Please test if your target application UI element supports this.
  + `Background` - Runs actions in the background. Tries to use either Simulate or Chromium API where possible, while complex APIs (image, native text) run as usual, in the foreground. It is highly recommended to use this API with the [Verify Execution](https://docs.uipath.com/activities/other/latest/user-guide/project-settings-ui-automation) feature.
* `OpenMode NAppOpenMode` - choose when to open the app:
  + `Never` (never open the application)
  + `IfNotOpen` (open only if the application is closed, this is the default selection, only works if `FilePath` or `URL` are provided)
  + `Always` (open another instance of the application even if one is already open, only works if `FilePath` or `URL` are provided)
* `WindowResize NWindowResize` - choose the size of the window:
  + `None`
  + `Maximize`
  + `Restore`
  + `Minimize`
* `UserDataFolderMode BrowserUserDataFolderMode`
  - The `UserDataFolderMode` you want to set. It is
  used to start the browser with a specific user data folder.
  + `Automatic` - Picture In Picture mode uses a different folder than the default mode, automatically generated if `UserDataFolderPath` is not set.
  + `DefaultFolder` - Uses the default browser folder, no matter if it runs in the main or PIP session.
  + `CustomFolder` - Uses the folder specified in `UserDataFolderPath` or an auto generated path if `UserDataFolderPath` is not set.
* `UserDataFolderPath String` - The user data folder that the browser uses. Defaults to `%LocalAppData%\UiPath\PIP Browser
  Profiles\BrowserType` if not set.
* `IsIncognito Boolean` - input `True` if you want to open the browser in incognito mode. By default it's set to `False`.
* `WebDriverMode NWebDriverMode` - Indicates how the WebDriver is used when opening a new browser session. The following options are available:
  + `Disabled` - Disables the use of
    WebDriver.
  + `WithGUI` - The GUI of the browser is displayed.
  + `Headless` - The browser is launched silently, with no GUI.

Open(String, String, String, NAppOpenMode, NWindowResize, NInteractionMode)

Opens a specific desktop application or web page to use in UI automation, identified by the screen name from the Object Repository, along with other customizations of the app or web page.

Open(
    string screenName,
    [string appName],
    [string appVersion],
    [NAppOpenMode openMode],
    [NWindowResize windowResize],
    [NInteractionMode interactionMode])
Open(
    string screenName,
    [string appName],
    [string appVersion],
    [NAppOpenMode openMode],
    [NWindowResize windowResize],
    [NInteractionMode interactionMode])

screeName String: The name of the screen you want to focus on, as a String recorded inside the Object Repository.

appName String: The name of the application to attach to. This parameter is applicable for desktop applications.

appVersion String: The version of the application to attach to. This parameter is applicable for desktop applications.

openMode NAppOpenMode: Select when to open the target application for the execution of the automation:

* `Never` (never open the application)
* `IfNotOpen` (open only if the application is closed, this is the default selection, only works if the `Url` parameter is configured)
* `Always` - (open another instance of the application even if one is already open, only works if the `Url`
  parameter is configured).
* `Never` (never open the application)
* `IfNotOpen` (open only if the application is closed, this is the default selection, only works if the `Url` parameter is configured)
* `Always` - (open another instance of the application even if one is already open, only works if the `Url`
  parameter is configured).

NWindowResize: Choose the size of the window:

* `None`
* `Maximize`
* `Restore`
* `Minimize`
* `None`
* `Maximize`
* `Restore`
* `Minimize`

NInteractionMode: Choose which API the Robot should use to interact with the target application:

* `HardwareEvents` - Uses the hardware driver to perform the action. This is the slowest API, it cannot work in the background, but it is compatible with all desktop apps.
* `Simulate` - Simulates the action using accessibility
  APIs. Recommended in browser automation, Java apps, or SAP. More reliable than Hardware Events. Sends all text in a single action.
  Works even if the target application is not in focus. Please test if your target application UI element supports this.
* `DebuggerApi` - Performs actions using debugger APIs.
  Works only for Chromium elements. Sends all text in one go. Works even if target app is not in focus. For more details, check out this [page](https://docs.uipath.com/studio/docs/chromium-api).
* `WindowMessages` - Sends the mouse and keyboard input through Win32 messages. Recommended for desktop apps. Usually more reliable than Hardware Events. Sends all text in a single action.
  Works even if target app is not in focus. Please test if your target application UI element supports this.
* `Background` - Runs actions in the background. Tries to use either Simulate or Chromium API where possible, while complex
  APIs (image, native text) run as usual, in the foreground. It is highly recommended to use this API with the [Verify Execution](https://docs.uipath.com/activities/other/latest/user-guide/project-settings-ui-automation) feature.
* `HardwareEvents` - Uses the hardware driver to perform the action. This is the slowest API, it cannot work in the background, but it is compatible with all desktop apps.
* `Simulate` - Simulates the action using accessibility
  APIs. Recommended in browser automation, Java apps, or SAP. More reliable than Hardware Events. Sends all text in a single action.
  Works even if the target application is not in focus. Please test if your target application UI element supports this.
* `DebuggerApi` - Performs actions using debugger APIs.
  Works only for Chromium elements. Sends all text in one go. Works even if target app is not in focus. For more details, check out this [page](https://docs.uipath.com/studio/docs/chromium-api).
* `WindowMessages` - Sends the mouse and keyboard input through Win32 messages. Recommended for desktop apps. Usually more reliable than Hardware Events. Sends all text in a single action.
  Works even if target app is not in focus. Please test if your target application UI element supports this.
* `Background` - Runs actions in the background. Tries to use either Simulate or Chromium API where possible, while complex
  APIs (image, native text) run as usual, in the foreground. It is highly recommended to use this API with the [Verify Execution](https://docs.uipath.com/activities/other/latest/user-guide/project-settings-ui-automation) feature.

Running WebDriverMode as Headless

To operate WebDriverMode in a headless configuration, these steps can serve as a guide.

Begin by defining a variable for your screen. Use the function uiAutomation.Open to open a new application in the browser of your choice - in this instance, Edge. After that, use the Options class in the overload to specify certain browser options. Among these options, set webDriverMode to NWebDriverMode.Headless.

The corresponding code looks like this:

var screen = uiAutomation.Open(Descriptors.NewApplication.Edge, Options.AppOpen().WithBrowserOptions(webDriverMode: NWebDriverMode.Headless));
var screen = uiAutomation.Open(Descriptors.NewApplication.Edge, Options.AppOpen().WithBrowserOptions(webDriverMode: NWebDriverMode.Headless));

This code functions to set your WebDriver to Headless mode, enabling the browser automation without the browser being visibly open.

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated