Click
Taps — or presses and holds — one point on the screen.
Click is the node that actually touches the device. Everything else in a flow exists to work out where and when this node should fire.
Purpose
Sends a touch to the device: a normal tap, or a press-and-hold. Use it to press buttons, open menus, or hold a drag handle.
The tap target can be a rectangle you draw, a fixed point, or the centre of what a Find Image node just matched — so you can tap exactly where an image was found, without ever writing a coordinate into your flow.
When to use it
- Pressing any on-screen button or control.
- Tapping something a Find Image node just located.
- Long-pressing a drag handle or opening a context menu.
- Dismissing a popup by tapping its close button.
When not to use it
- To press Back, Home, or Enter — those are system keys with no on-screen button. Use Key Press.
- To type — use Input Text.
- To scroll or drag across the screen — use Swipe.
- To wait for a button to appear — Click does not wait or search. Put a Find Image in front of it.
Requirements
The node needs a resolvable target at run time: a Click Region, a fixed point, or a live Find Image result. A Find Image source only resolves after that node has run on this path and matched.
How it runs
The offset shifts the final tap position only. The source coordinate — the Find Image result, the region, the point — is never modified.
The node routes Success as soon as the touch command is dispatched. It has no idea whether anything happened. To act on the result, chain a Wait or, better, a detection node.
Settings
| Setting | Type | Range | Default | What it does |
|---|---|---|---|---|
| Coordinate source | choice | manual, findImageResult | manual | Tap a region/point you defined, or the clickable centre of an upstream Find Image node |
| Click Region | rectangle | percentage of screen | — | The rectangle to tap. The runtime taps a random point inside it on every run |
| Click Offset — Left | integer | 0–5000 px | 0 | Shifts the final tap left |
| Click Offset — Right | integer | 0–5000 px | 0 | Shifts the final tap right |
| Click Offset — Up | integer | 0–5000 px | 0 | Shifts the final tap up |
| Click Offset — Down | integer | 0–5000 px | 0 | Shifts the final tap down |
| Tap Count | integer | 1 or 2 | 1 | 1 = single tap, 2 = double-tap |
| Hold Duration | integer | 0–5000 ms | 0 | 0 = normal tap; above 0 = press-and-hold |
| Input mode | choice | adb, native | flow default | How the touch is delivered |
Why the region taps a random point
A Click Region does not tap its centre — it picks a new random point inside the rectangle each run. Repeated runs therefore never hammer the exact same pixel.
Keep the rectangle tight around the control. A large region means a random point can land outside the actual button.
Tap Count and Hold Duration interact
A double-tap (tapCount: 2) is two quick natural taps and ignores Hold Duration — it is not a press-and-hold repeated twice.
Deprecated: Wait After Click
Older flows may carry a waitAfterMs value. It is ignored by the runtime and no longer shown in the editor. Chain a Wait node for a post-click delay.
Ports
| Port | Taken when | Required |
|---|---|---|
| Success | The touch command was dispatched | Yes |
| Failure | The target could not be resolved — invalid or off-screen point, or a Find Image result not available on this path | No |
| Timeout | The input command did not complete in time | No |
| Cancelled | The run was stopped while the click was in flight | No — never followed |
| Fatal | The device is disconnected, or an unexpected error occurred | No — never followed |
Basic example
Tap a fixed control:
- Coordinate source: Manual
- Click Region: drawn tightly around the Settings gear
- Hold Duration:
0
Realistic example — tap what you found
The standard two-node idiom, and the one you will use most:
The Click never contains a coordinate. If the button moves, the Find Image still locates it and the Click still lands.
Advanced example — offset to hit a neighbour
You want to tap the label underneath a matched icon, but only the icon is distinctive enough to use as a template.
- Coordinate source: the Find Image result for the icon
- Click Offset — Down:
40
The tap lands 40 input pixels below the match. One template, two targets, no second detection.
Turn the same node into a long press by setting Hold Duration to 800.
Best practices
- Prefer a Find Image source over a fixed region wherever the target can move. It survives layout changes.
- Keep Click Regions tight. The random point must always land on the control.
- Never assume the tap worked. Follow it with a detection node that confirms the new screen state.
- Use the offset instead of a second template when the real target sits at a fixed distance from something distinctive.
- Add a Wait after taps that trigger animations, or the next detection reads the old frame.
Performance notes
- Click is one of the cheapest nodes — it dispatches an input command and returns. It does not capture or analyse a frame.
- The cost that matters is what you put around it: a Wait after every click adds up fast across a long flow. Where possible, wait on a detection result instead of a fixed delay.
- Retry with backoff on a Click multiplies its worst-case time. Keep
maxAttemptsat 2–3.
Memory notes
- Click holds no frame and caches nothing. Its memory footprint is negligible.
- With
captureFailureScreenshotsenabled at flow level, a failing Click writes a screenshot artifact per failure — real disk I/O in a long run.
Common mistakes
| Mistake | What happens | Fix |
|---|---|---|
| Find Image source used before that node ran | Exits Failure — no result on this path | Put the Find Image before the Click, on the same path |
| Click Region too large | Random point misses the control | Tighten the rectangle |
| Expecting the screen to have settled | The node returns the instant the tap is sent | Chain a Wait or a detection node |
| Using Click to press Back | There is nothing on screen to tap | Use Key Press with BACK |
Relying on waitAfterMs from an old flow | Ignored by the runtime | Add a real Wait node |
Troubleshooting
The Click exits Failure every time. Its coordinate source is a Find Image node that did not run on this path, or did not match. Check the wiring — the Find Image must be upstream on the same branch.
The tap lands slightly off the button. The Click Region is too large and the random point is drifting. Tighten it, or switch to a Find Image source with an offset.
The tap works but nothing happens on screen. The tap probably landed before the screen was interactive. Add a detection node before the Click that confirms the target is actually present.
The long press is not registering. Check Tap Count — a double-tap ignores Hold Duration. Set Tap Count to 1.
FAQ
Does the Click Region tap its centre? No — a random point inside it, re-picked each run.
Can I click a coordinate stored in a variable? Bind the Find Image result to variables and use them, or use a Find Image source directly. Fixed points are legacy and resolution-dependent.
Is the offset in screen pixels or percent? Input pixels. The source coordinate stays untouched; only the final tap moves.
What is the maximum hold duration? 5000 ms.
Related nodes
- Find Image — locates what to click
- Wait — the pause after a click
- Swipe — for drags and scrolling
- Key Press — for system keys
- Input Text — for typing
Related pages
- Execution Model — status versus route
- Retry and Failures — when to retry a Click