- Overview
- UI Automation
- About the UI Automation activity package
- 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
- About Oracle ADF automation
- Identifying Oracle ADF elements
- About Oracle Redwood automation
- Identifying Oracle Redwood elements
- 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
- Accessibility Check
- Application Event Trigger
- Block User Input
- Check/Uncheck
- Check App State
- Check Element
- Click
- Click Event Trigger
- Drag and Drop
- Element Scope
- Extract Table Data
- Find Elements
- 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
- Save Image
- Select Item
- Set Browser Data
- Set Clipboard
- Set CV Server
- Set Runtime Browser
- Set Focus
- Set Project Setting
- Set Text
- Take Screenshot
- Type Into
- Unblock User Input
- 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
- Release notes
- About the Terminal activity package
- Project compatibility
- Best practices
- Find Text
- Get Color at Position
- Get Cursor Position
- Get Field
- Get Field at Position
- Get Screen Area
- Get Text
- Get Text at Position
- Move Cursor
- Move Cursor to Text
- Send Control Key
- Send Keys
- Send Keys Secure
- Set Field
- Set Field at Position
- Terminal Session
- Wait Field Text
- Wait Screen Ready
- Wait Screen Text
- Wait Text at Position
- Terminal coded automation APIs
UI Automation activities
Oracle Redwood pages render UI through Oracle JET (Oracle JavaScript Extension Toolkit) custom elements. Selectors generated for these elements are easy to recognize by the oj- prefix on the tag attribute and by the framework-specific attributes described below.
A selector for an Oracle Redwood element contains the <webctrl> tag, similar to other web UI elements.
The following attributes are surfaced in selectors for Oracle Redwood elements:
| Attribute | Description |
|---|---|
tag | The JET custom element tag (for example, oj-button, oj-input-text, oj-table, oj-list-view). Helps to disambiguate JET components from plain HTML elements. |
redwood-id | Stable identifier derived from JET's :id binding expression. JET often regenerates random id values on refresh while the :id expression does not, so prefer redwood-id when available. |
data-key | Key that JET stamps on data-bound or dynamic containers, such as dashboard cards or grouped-table headers, set to the bound item's key. Not present on ordinary rows; the selector anchors the nearest ancestor that carries data-key. |
data-oj-field | Name of the bound field, stamped by JET on a parent element of form fields. Surfaced on the enclosing ancestor, keeping the selector stable when the field's internals re-render. |
The id attribute of Oracle Redwood elements is included in selectors only when its value is reliable. JET auto-generates many id values that change between page loads or sessions; the driver recognizes these and leaves them out of the selector. When the id is filtered, the driver falls back to redwood-id and the surrounding JET component's stable identifier. The redwood-id value also provides the element's display name in Studio when the element has no better name.
The driver can also add a class attribute holding the JET role class of the indicated element (for example, class='*oj-button-text*' for the text part inside an oj-button). JET composites paint these role classes onto their inner parts, which makes them a stable way to address a part when the part itself has no id.
Examples
redwood-id vs id. JET regenerates an element's id on every render, for example a message banner whose id cycles through _oj45_bannerunsaved, _oj112_bannerunsaved, … as the _ojNNN counter advances. The driver filters that volatile id and uses the stable redwood-id (derived from the component's :id binding) instead:
<webctrl tag='OJ-MESSAGE-BANNER' redwood-id='uidbannerunsaved' />
<webctrl tag='OJ-MESSAGE-BANNER' redwood-id='uidbannerunsaved' />
data-key + role class (a dashboard metric). Each dashboard card is a data-bound container JET stamps with data-key, so the selector anchors the card by its key; the value element inside it is pinned by its JET role class:
<webctrl tag='DIV' data-key='accounts' />
<webctrl tag='DIV' class='*oj-sp-scoreboard-metric-card-metric*' />
<webctrl tag='DIV' data-key='accounts' />
<webctrl tag='DIV' class='*oj-sp-scoreboard-metric-card-metric*' />
data-oj-field (a form field). In an edit/create form, JET stamps the bound field name on the field component, which the driver uses to anchor the field regardless of its internal id churn:
<webctrl tag='OJ-COMBOBOX-ONE' data-oj-field='OrganizationName' />
<webctrl tag='OJ-COMBOBOX-ONE' data-oj-field='OrganizationName' />
A CX picker field. The picker's oj-vb-fragment gets a runtime id of the form {fieldName}-cx-{uid}, where the suffix is regenerated every session. The driver recovers the stable field name and anchors the fragment with a wildcard id:
<webctrl tag='OJ-VB-FRAGMENT' id='PrimaryContactPartyId-cx-*' />
<webctrl tag='INPUT' type='text' />
<webctrl tag='OJ-VB-FRAGMENT' id='PrimaryContactPartyId-cx-*' />
<webctrl tag='INPUT' type='text' />
The project's Selector - Default find type should be One match so ambiguous selectors fail at authoring time rather than at runtime — see About Oracle Redwood automation.