UI Inspector & Touch Recording

Browse the full UI hierarchy tree, inspect element properties, perform actions on elements, and record touch interactions for automation scripts.

UI Inspector

Overview

UI Hierarchy Tree

Browse the complete Android UI element tree with expand/collapse and search.

Element Properties

Inspect text, resource-id, class, bounds, clickable, enabled, and more.

Element Actions

Click, long-click, swipe, or input text on any element directly.

Touch Recording

Record device interactions in Fast or Precise mode. Convert to workflows.

UI Hierarchy Tree

UI hierarchy tree with expandable nodes and element properties

The tree displays all UI elements on the current device screen. Click Refresh to re-fetch the hierarchy.

Tree Node Display

Each node shows:

  • Class name — Short form in brackets (e.g., [Button], [EditText])
  • Text — Visible text in bold quotes (e.g., "OK")
  • Resource ID — Short ID after / (e.g., #btn_ok)

The first 2 levels are auto-expanded on load. A 2-second cache prevents unnecessary re-fetches.

Search Modes

Three search modes are available from the dropdown:

ModeSyntaxExample
AutoDetects mode automaticallyAny query
TextPlain text substringLogin — matches text, id, class, contentDesc
XPathStarts with ////Button[@text='OK']
AdvancedUses :, =, AND/ORclickable:true AND text:OK

Advanced Operators

OperatorMeaningExample
: or ~Containstext:OK
=Exact equalsclickable=true
^Starts withid^com.app
$Ends withclass$Button

Matching nodes are highlighted and non-matching branches are hidden. A help tooltip (?) shows all syntax examples.

Element Properties

Select a tree node to open the 350px detail panel showing:

PropertyCopyableNotes
TextYesElement's visible text
Resource IDYesFull resource-id string
ClassNoFull Java class name
Content DescNoAccessibility description
BoundsNoBounding rectangle (e.g., [0,0][1080,1920])
ClickableNoAlways shown (true/false)
Long ClickableNoAlways shown (true/false)
EnabledNoShown if truthy
FocusedNoShown if truthy
ScrollableNoShown if truthy

Element Actions

Select an action from the dropdown and click Simulate to execute:

ActionDescription
ClickTap the center of the element
Long ClickLong-press the element
Swipe Up/Down/Left/RightSwipe from the element in a direction
Back / Home / RecentPress device navigation keys
InputType text into the element (auto-selected for EditText elements)
Auto-detection: When an EditText element is selected, the action automatically switches to "Input" mode.

Quick Actions

  • Copy as Workflow Step — Generate a JSON workflow step template from the selected element
  • Copy Selector — Copy the best selector value (text > resourceId > contentDesc) to clipboard

After each action, the UI hierarchy is silently re-fetched after 800ms. If the hierarchy changed, an "UI Updated" notification appears.

Touch Recording

Record device touch interactions to create reusable automation scripts.

Recording Modes

ModeDescriptionTrade-off
FastRecords raw touch coordinates onlyLowest latency, coordinate-based (fragile across different screen sizes)
PreciseCaptures UI hierarchy per touch to identify elementsHigher latency, but produces robust element-based selectors

Recording Flow

  1. Select a recording mode (Fast or Precise)
  2. Click Start Recording
  3. Touch the device to record actions — each tap, long-press, and swipe is captured
  4. Click Stop Recording
  5. Save the script with a name

Active Recording Indicators

  • Red-bordered card with pulsating dot
  • Live duration timer (MM:SS)
  • Action counter showing events captured
  • In Precise mode: status indicators (Dumping → Analyzing → Waiting for selector → Ready)

Selector Choice (Precise Mode)

In Precise mode, after each touch the system analyzes the UI and presents a list of selector suggestions ranked by priority. Select the best selector for robust replay, or fall back to coordinates.

Script Preview & Playback

Preview

After recording, a monospaced preview shows all captured events:

1. tap (540, 960) [text: Login] @ 1200ms 2. long press (270, 480) [id: com.example:id/item] 800ms @ 3500ms 3. swipe (540, 1200) -> (540, 400) 350ms @ 5000ms 4. wait 1000ms

Each event has a lightning-bolt button for single-step execution (useful for debugging).

Playback

  • Click Test Script or the play button to replay on the device
  • Progress bar shows current event / total
  • Auto-scaling — Coordinates are automatically adjusted for different screen resolutions
  • Completed events are highlighted in green during playback

Script Management

Saved scripts appear in a virtual-scrolling list:

ActionDescription
PlayReplay the script on the selected device
RenameChange the script name
Convert to WorkflowTransform the touch script into a visual workflow with proper step types and connections
DeleteRemove the script (with confirmation)

Batch selection with select-all checkbox and bulk delete is supported.

Convert to Workflow

Conversion creates a full workflow with:

  • A Start node
  • Wait steps for delays between events (>50ms)
  • Element-based steps (click_element, long_click_element, swipe_element) using selectors from Precise recording
  • Coordinate-based bounds selectors as fallback
  • Sequential connections between all steps

Element Selector Types

TypeDescriptionRobustness
textMatch by visible textHigh (if text is stable)
idMatch by resource-idHigh
descMatch by content-descriptionHigh
classMatch by Java class nameMedium
xpathXPath expressionMedium (depends on hierarchy)
boundsDirect bounding rectangleLow (screen-size dependent)
coordinatesRaw x,y coordinatesLowest

More Features