# Identifying Oracle ADF elements

> Selector attributes surfaced by UI Automation for Oracle ADF elements, including adf-view and adf-relative-id, with examples.

Oracle Application Development Framework (ADF) pages render Rich Components (such as RichInputText, RichTable, RichButton) backed by the ADF component model. Selectors generated for these elements are easy to recognize by the `adf-` attributes that the driver surfaces from the underlying component instance.

A selector for an Oracle ADF element contains the `<webctrl>` tag, similar to other web UI elements.

The following attributes are surfaced on Oracle ADF elements:

| Attribute | Description |
| --- | --- |
| `adf-relative-id` | The component's identifier relative to its enclosing ADF view. Stable across partial-page renders, so it is the recommended anchor. |
| `adf-view` | The identifier of an ADF view. Surfaced only on an element that is itself a view. |
| `adf-comptype` | The ADF component type (for example, `oracle.adf.RichCommandLink`). Used as the element's display name in Studio, but not added to generated selectors automatically. |

The `id` attribute on Oracle ADF elements is the fully qualified ADF client id, a long, `:`-separated path (for example, `…:AT1:_ATp:ATt1:0:cl1`) built from the chain of enclosing components, including iterator row-index stamps. The driver does not use it in generated selectors: it is auto-generated and filtered out as unreliable. `adf-view` and `adf-relative-id`, taken from ADF's component model, are used instead.

The `tableRow` and `tableCol` attributes that web selectors usually expose for HTML tables are filtered out when ADF anchors are available, because the ADF component identifiers are more stable.

## Examples

**An element inside a view (the `adf-view` / `adf-relative-id` relationship).** The driver anchors the enclosing view by its `adf-view`, and the element by its `adf-relative-id`, the element's position *within* that view:

```xml
<webctrl adf-view='/ReferencesFlow/ReferencesData' />
<webctrl tag='A' adf-relative-id='AT1:_ATp:ATt1:cl1' />
```

The element's full `id` nests the view's path and this relative path together, for example `…:AP3:r1:0:AT1:_ATp:ATt1:0:cl1`, where `…:AP3:r1` is the view. The `adf-relative-id` is the part below the view (`AT1:_ATp:ATt1:cl1`), with the iterator row stamps removed, so the two-level selector stays valid across partial-page renders, and the same `adf-relative-id` matches that element in every row.

![Oracle ADF page with the view and a child element highlighted, showing how the child's id extends the view's id](https://dev-assets.cms.uipath.com/assets/images/activities/oracle-fusion/adf-view-and-relative-id-f2399bb5.png)

**An element outside any view.** Top-level elements (for example, those in the global header or navigation bar) are not inside a view, so they carry only `adf-relative-id`:

```xml
<webctrl tag='A' adf-relative-id='pt1:_UISmmLink' />
```

:::tip
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 ADF automation](https://docs.uipath.com/activities/other/latest/ui-automation/about-oracle-adf-automation).
:::
