- Overview
- UI Automation
- Applications and technologies automated with UI Automation
- Project compatibility
- UI-ANA-016 - Pull Open Browser URL
- UI-ANA-017 - ContinueOnError True
- UI-ANA-018 - List OCR/Image Activities
- UI-DBP-006 - Container Usage
- UI-DBP-013 - Excel Automation Misuse
- UI-DBP-030 - Forbidden Variables Usage In Selectors
- UI-DBP-031 - Activity verification
- UI-PRR-001 - Simulate Click
- UI-PRR-002 - Simulate Type
- UI-PRR-003 - Open Application Misuse
- UI-PRR-004 - Hardcoded Delays
- UI-REL-001 - Large Idx in Selectors
- UI-SEC-004 - Selector Email Data
- UI-SEC-010 - App/Url Restrictions
- UI-USG-011 - Non Allowed Attributes
- UX-SEC-010 - App/Url Restrictions
- UX-DBP-029 - Insecure Password Use
- UI-PST-001 - Audit Log Level in Project Settings
- UiPath Browser Migration Tool
- Clipping region
- Computer Vision Recorder
- Activities index
- Activate
- Anchor Base
- Attach Browser
- Attach Window
- Block User Input
- Callout
- Check
- Click
- Click Image
- Click Image Trigger
- Click OCR Text
- Click Text
- Click Trigger
- Close Application
- Close Tab
- Close Window
- Context Aware Anchor
- Copy Selected Text
- Element Attribute Change Trigger
- Element Exists
- Element Scope
- Element State Change Trigger
- Export UI Tree
- Extract Structured Data
- Find Children
- Find Element
- Find Image
- Find Image Matches
- Find OCR Text Position
- Find Relative Element
- Find Text Position
- Get Active Window
- Get Ancestor
- Get Attribute
- Get Event Info
- Get From Clipboard
- Get Full Text
- Get OCR Text
- Get Password
- Get Position
- Get Source Element
- Get Text
- Get Visible Text
- Go Back
- Go Forward
- Go Home
- Google Cloud Vision OCR
- Hide Window
- Highlight
- Hotkey Trigger
- Hover
- Hover Image
- Hover OCR Text
- Hover Text
- Image Exists
- Indicate On Screen
- Inject .NET Code
- Inject Js Script
- Invoke ActiveX Method
- Key Press Trigger
- Load Image
- Maximize Window
- Microsoft Azure Computer Vision OCR
- Microsoft OCR
- Microsoft Project Oxford Online OCR
- Minimize Window
- Monitor Events
- Mouse Trigger
- Move Window
- Navigate To
- OCR Text Exists
- On Element Appear
- On Element Vanish
- On Image Appear
- On Image Vanish
- Open Application
- Open Browser
- Refresh Browser
- Replay User Event
- Restore Window
- Save Image
- Select Item
- Select Multiple Items
- Send Hotkey
- Set Clipping Region
- Set Focus
- Set Text
- Set To Clipboard
- Set Web Attribute
- Show Window
- Start Process
- System Trigger
- Take Screenshot
- Tesseract OCR
- Text Exists
- Tooltip
- Type Into
- Type Secure Text
- Use Foreground
- Wait Attribute
- Wait Element Vanish
- Wait Image Vanish
- Application Event Trigger
- Check/Uncheck
- Check App State
- Check Element
- Click
- Click Event Trigger
- Drag and Drop
- Extract Table Data
- For Each UI Element
- Get Browser Data
- Get Clipboard
- Get Text
- Get URL
- Go to URL
- Highlight
- Hover
- Inject Js Script
- Keyboard Shortcuts
- Keypress Event Trigger
- Mouse Scroll
- Navigate Browser
- Select Item
- Set Browser Data
- Set Clipboard
- Set Runtime Browser
- Set Text
- Take Screenshot
- Type Into
- Use Application/Browser
- Window Operation
- Perform browser search and retrieve results using UI Automation APIs
- Web Browsing
- Find Images
- Click Images
- Trigger and Monitor Events
- Create and Override Files
- HTML Pages: Extract and Manipulate Information
- Window Manipulation
- Automated List Selection
- Find and Manipulate Window Elements
- Manage Text Automation
- Load and Process Images
- Manage Mouse Activated Actions
- Automate Application Runtime
- Automated Run of a Local Application
- Browser Navigation
- Web Automation
- Trigger Scope Example
- Enable UI Automation support in DevExpress
- Computer Vision Local Server
- Mobile Automation
- Release notes
- About the mobile device automation architecture
- Project compatibility
- Get Log Types
- Get Logs
- Get Page Source
- Get Device Orientation
- Get Session Identifier
- Install App
- Manage Current App
- Manage Other App
- Open DeepLink
- Open URL
- Mobile Device Connection
- Directional Swipe
- Draw Pattern
- Positional Swipe
- Press Hardware Button
- Set Device Orientation
- Take Screenshot
- Take Screenshot Part
- Element Exists
- Execute Command
- Get Attribute
- Get Selected Item
- Get Text
- Set Selected Item
- Set Text
- Swipe
- Tap
- Type Text
- Terminal

UI Automation Activities
Local iOS devices
linkSetting up local iOS devices
linkTo set up a local device to work with the Mobile Automation activities, you need to run a local instance of Appium, and have the necessary tools to automate iOS devices.
There are two types of local iOS devices that you can automate:
- Physical - a physical iOS device that you can connect to your local machine, through a USB cable.
- Emulator - an emulator for an iOS device that's stored locally.
Most used Appium commands
linkThe list below describes the most used commands for setting up Appium in the context of Mobile Device Automation (recommended for Appium 2.0):
xcrun simctl list
- List available devices, device types, runtimes, or device pairs.xcrun simctl list devices
- lists the available devices.xcrun simctl list devicetypes
- lists the device types.xcrun simctl list runtimes
- lists the runtimes.xcrun simctl list runtimes
- lists the device pairs.
Application Storage
linkIPA
file to a URL that is anonymously accessible by the Appium server (e.g. Blob storage).
Installing applications from the Play Store or App Store is not possible, except if you manually automate these applications to install your specific application.
APP
extension and you want to upload the app to a public URL, you will need to create a folder named Payload
, place the APP
inside it, archive the Payload
folder and change the extension to IPA
instead of ZIP
.
Additionally, ensure that the application that you are trying to automate is compiled for the target architecture (simulator or physical device).
Configuring IOS Physical Device
linkPrerequisites
- Install Xcode.
- Open a Terminal and run the following command to install Homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- Run the following command to install NodeJS:
brew install node
- Install Appium:
- For Appium 1.0, run the following command:
npm install -g appium
. This automatically installed all drivers needed. - For Appium 2.0, run the following command:
npm install -g appium@next
.
- For Appium 1.0, run the following command:
appium driver install xcuitest
.
- We recommend using Appium 2.0 with Mobile Automation version 22.10 or higher.
-
Install Appium 2.0 if you want to test your mobile automations on a iOS Physical Device.
- Open Xcode and allow it to install any additional components it may require. Close it once you see the splash screen.
-
Start the Appium server, using the following command:
appium --port 8001 --default-capabilities "{\"appium:systemPort\":9001}" --relaxed-security
.
Configuring Local Physical IOS Device
- Connect your physical device to your Mac.
- Unlock your device and, if an alert pops up, make sure to allow the computer to access it.
- Get the Appium URL and save it for later:
- Go to System Settings, then the Network tab, and select the Wi-Fi network that the physical device is connected to.
-
Copy the IP Address for the Wi-Fi network that the device is connected to. The format of the Appium URL is
http://<ipaddress>:8001
(8001
is the port number where you start Appium).
- Get the UDID of the physical iOS device that you connected to your machine, from XCode.
- Go to Window > Devices and Simulators > Devices.
- Click the iOS device that you connected to.
- Copy the Identifier. This is the UDID, that you'll later add as an additional desired capability, when adding this iOS physical device to MDM.
- Build WebDriverAgent with XCode on your Mac.
- Navigate to the
appium-webdriveragent
folder, using the following path:/Users/<username>/appium2/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent
, and open thexcodeproj
file. - Select WebDriverAgent, and open WebDriverAgentRunner, under the Targets section.
- Switch to the Signing & Capabilities tab, select Automatically manage signing, and choose a user account from the Team dropdown.
- Change the Bundle Identifier to a unique value.
-
Copy and save this Bundle Identifier. You'll use it to add your Application inside MDM (Bundle Id).
- Navigate to the
- Install the WebDriverAgent on your iOS physical device.
- Select WebDriverAgentRunner in the WebDriverAgent navigation bar.
- In XCode, go to Product, and click Test. On your connected iOS physical device, you'll see the WebDriverAgent installing.
- Add the configurated local physical iOS device in Mobile Device Manager, using the Adding iOS Device in Mobile Device Manager procedure.
Adding Local IOS Device in Mobile Device Manager
link- Open Mobile Device Manager from Studio.
- In the left navigation panel go to Devices.
- Configure your device as follows:
- Name - Enter a name to identify your device in the Devices tab.
- Appium URL - Enter the Appium URL, that you previously copied, using the following format:
http://<ipaddress>:8001
. - Platform - Click the field to select iOS from the dropdown.
- Device Name - Enter the device name.
-
Additional Desired Capabilities - Add the following capabilities:
Name
Value
automationName
xcuitest
(This capability activates the Appium iOS driver)udid
the Identifier of the connected physical iOS device
- (Optional) Configure logging and video recording details in the Logging tab.
- (Optional) Configure your development process in the Development tab.
- Close Similar Tabs (Activated by default): Close tabs running connections with similar devices and applications.
- Wait for Page Update (Activated by default): Wait for the page source to retrieve a screenshot of each action.
- Click Save & Close to add your device.
Your device is added to the Devices list. To add a local device, see .
If you cannot start your device, see Troubleshooting: Physical device fails to start.
Hybrid and Web Automation on IOS
linkHybrid automation works by default for iOS devices, provided that you are not attempting to automate an app built for production. When automating production apps, WKWebView hosted content will not be automatable, though any web content hosted in an SFSafariViewController can be automated in production apps as well. For more information, see SFSafariViewController.