Record & Replay
Capture your interactions and replay them with smart element matching.
Recording
Interactive Recording
Follow the prompts:
- Choose gesture type (tap, swipe, scroll, etc.)
- Perform the gesture on your device
- DittoMation captures the element and coordinates
- Repeat until done
- Press
Ctrl+Cto save
Automated Recording
This captures touch events automatically using getevent.
Workflow Format
Recorded workflows are saved as JSON:
{
"name": "Login Flow",
"steps": [
{
"id": 1,
"gesture": {
"type": "tap",
"start": [540, 350]
},
"locator": {
"primary": {"strategy": "id", "value": "username_input"},
"fallbacks": [
{"strategy": "content_desc", "value": "Enter username"},
{"strategy": "text", "value": "Username"}
],
"bounds": [100, 300, 980, 400]
},
"element": {
"class": "android.widget.EditText",
"resource_id": "com.example:id/username_input",
"text": "",
"content_desc": "Enter username"
}
},
{
"id": 2,
"gesture": {
"type": "tap",
"start": [540, 650]
},
"locator": {
"primary": {"strategy": "id", "value": "login_btn"},
"fallbacks": [
{"strategy": "text", "value": "Login"},
{"strategy": "text", "value": "Sign In"}
]
}
}
]
}
Replaying
Basic Replay
With Variables
With Delay
Gestures Supported
| Gesture | Description |
|---|---|
tap |
Single tap |
long_press |
Press and hold |
swipe |
Directional swipe |
scroll |
Scroll gesture |
pinch |
Zoom in/out |
Smart Replay
When replaying, DittoMation:
- Finds the element using the locator chain
- Falls back if primary locator fails
- Calculates new coordinates based on found element
- Executes the gesture at the correct position
This means your workflow works even if:
- Element moved to a different position
- Screen size changed
- Resource ID was renamed (if fallbacks exist)
Editing Workflows
You can manually edit the JSON to:
- Add more fallback strategies
- Change gesture parameters
- Add variables with
{{variable}}syntax - Add control flow (loops, conditions)
Example with variables: