- 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
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.