This section introduces each available action and shows how to configure its attributes.
Click the action in a step to view all available actions.
Actions are grouped into categories such as Motion, Event, Variable, Control, Assertion, and Advanced.
Each action has specific attributes you can configure.

Motion #
Basic actions for interacting with a device’s user interface.
Touch #
Tap a UIObject on the screen.

Attributes
- UIObject: Target UIObject to touch
- type:
- Single: Touch once
- Double: Touch twice
- Long: Touch and hold
- duration (ms): Touch hold time in milliseconds (default: 3,000; range: 1,000–5,000)
- N Times: Repeat touches
- count: Number of touches (default: 2, range: 1–100)
- interval: Wait time between touches in ms (default: 1,000; range: 500–5,000)
Swipe #
Swipe left or right on the screen.

Attributes
- UIObject: Target area to swipe
- area (%): Swipe range percentage (default: 60; range: 1–100)
- direction: Swipe direction (default: LEFT; options: LEFT, RIGHT)
- duration (ms): Swipe time in milliseconds (default: 2,500; range: 100–5,000)
Swipe To #
Repeats a swipe until the specified UIObject appears on the screen. The action stops when the target becomes visible or the timeout elapses.

Attributes
- UIObject: Target area that determines when swiping stops.
- direction: Swipe direction. Default LEFT; options LEFT, RIGHT.
- wait timeout (ms): Time limit for repeated swipes. (default 10,000; range 5,000-600,000)
Scroll #
Scroll up or down on the screen.
May not work if touchable elements (e.g., buttons, menus) are located at the scroll start position.

Attributes
- UIObject: Target area to scroll
- area (%): Scroll range percentage (default: 60; range: 1–100)
- direction: Scroll direction (default: DOWN; options: DOWN, UP, BOTTOM, TOP)
- DOWN/UP: Normal scroll
- BOTTOM/TOP: Scroll to end
- duration (ms): Scroll time in milliseconds (default: 2,500; range: 100–5,000)
- limit (BOTTOM/TOP only): Time limit for scrolling to end in ms (default: 10,000; range: 5,000–600,000)
Scroll To #
Repeats a scroll until the specified UIObject appears on the screen. The action stops when the target becomes visible or the timeout is reached.

Attributes
- UIObject: Target area that determines when scrolling stops.
- direction: Scroll direction. (default DOWN; options DOWN, UP)
- wait timeout (ms): Time limit for repeated scrolling. (default 10,000; range 5,000–600,000)
Drag #
Drag from a start UIObject to an end UIObject. Commonly used on date or time setting screens.


Attributes
- start UIObject: UIObject to start dragging from
- end UIObject: UIObject to end dragging at
- press duration (ms): Long-press time before dragging starts in milliseconds (default: 0; range: 0–5,000)
- drag duration: Drag time in ms (default: 2,500; range: 500–5,000)
Pinch #
Zoom in or zoom out on the screen.

Attributes
- UIObject: UIObject to pinch
- action area (%): Pinch range percentage (default: 60; range: 50–100)
- direction: Pinch direction (default: IN; options: IN, OUT)
- IN: Zoom out
- OUT: Zoom in
- duration (ms): Pinch time in milliseconds (default: 2,500; range: 1,000–5,000)
Input #
Enters text using the keyboard. This action can be performed only when the keyboard is active on the device.

Attributes
- value: Text to enter (direct input or User Variable in
${key}
format) - auto done : When enabled, automatically presses the keyboard’s Done, Search, or Next button after text input is completed.
Secure Keyboard #
Enters text using a secure keyboard. This action can be performed only when the secure keyboard is active on the device.

Attributes
- value: Text to enter on the secure keyboard.
- interval (ms): Interval between key inputs in milliseconds (default: 1,000, range: 500–5,000)
- auto done: When enabled, automatically presses the keyboard’s Done, Search, or Next button after text input is completed.
Event #
Controls device and app behavior during execution.
Rotate #
Changes the device screen orientation.

Attributes
- orientation: Screen orientation (default: PORTRAIT, options: PORTRAIT/LANDSCAPE)
Wait #
Pauses execution for the specified time before the next Step.

Attributes
- value (ms): Wait time in milliseconds (default: 2,000, range: 500–600,000)
Launch #
Opens an app or accesses a URL in a browser.


Attributes
- type: Launch method (options: APP/BROWSER)
- APP:
- Package Name: Package name of the Android app
- Bundle ID: Bundle ID of the iOS app
- BROWSER:
- URL: Website address to visit
- Android: Browser app to use on Android
- iOS: Browser app to use on iOS
To learn more about getting the app ID, see [Stego User Guide > 5.0. Device Control Features].
Terminate #
Closes a running app.

Attributes
- Package Name: Package name of the Android app
- Bundle ID: Bundle ID of the iOS app
Activate #
Brings a background app to the foreground.

Attributes
- Package Name: Package name of the Android app
- Bundle ID: Bundle ID of the iOS app
Home #
Returns to the device home screen.
Lock #
Locks the device.
Unlock #
Unlocks the device.
Wake Up #
Wakes the device from sleep mode.
Keycode #
Sends key commands to an Android device. Available only when connected to Android devices.

Attributes
- value: Keycode value to enter, either direct input or predefined option
- e.g., Back(4), Enter(66), Del(67), AppSwitch(187)
- count: Number of times to run (default: 1, range: 1–100)
- interval (ms): Interval between runs in milliseconds (default: 1,000, range: 500–5,000)
Variable #
Stores data or generates values during test execution.
Store Value #
Stores a specific value.

Attributes
- key: Name of the value to store
- value: Value to store
Store Content #
Reads text from a UIObject and stores it as a variable.

Attributes
- UIObject: UIObject to read text from.
- key: Name of the variable to store the value.
- type
- String: Stores the text as-is.
- Number: Stores only numeric values.
- QRCode: Recognizes a QR code and stores the linked URL in a variable.
- pattern: Regular expression (regex) pattern to extract content (e.g.,
(?<=:)\d+
)
Store Random Number #
Stores a random number between 0 and 100.

Attributes
- key: Name of the value to store
Store Random Text #
Stores random characters from lowercase letters (a–z), uppercase letters (A–Z), and numbers (0–9).

Attributes
- key: Name of the value to store
- prefix: Fixed value to add at the beginning of text (optional)
- number of characters: Number of characters to create (default: 3, range: 1–10)
Control #
Controls scenario flow with conditional branching and repeated runs.
If UIObject #
Checks if a UIObject exists on screen and runs child steps.


Attributes
- UIObject: UIObject to check for existence
- wait timeout (ms): Maximum wait time in milliseconds (default: 0, range: 0–600,000)
- comparator: Run condition
- EXISTS: Run child steps if UIObject exists
- NOT EXISTS: Run child steps if UIObject doesn’t exist
If Content #
Compares UIObject text or color and runs child steps.


Attributes
- UIObject: UIObject to compare text or color from
- wait timeout (ms): Maximum wait time in milliseconds (default: 0, range: 0–600,000)
- comparator: Comparison method
- =: Run if text matches
- !=: Run if text does not match
- >, >=, <, <=: Run if numeric comparison is true
- match: Run if regex pattern matches from beginning of text
- search: Run if regex pattern exists anywhere in text
- color: Run if UIObject center color matches with threshold
- When comparator is =, !=, >, >=, <, <=, match, search
- value: Value to compare, direct input or User Variable in
${key}
format
- value: Value to compare, direct input or User Variable in
- When comparator is color
- color: Hex color code (e.g.,
#BABABA
) - threshold: Color similarity threshold (default: 0.9)
- color: Hex color code (e.g.,
If Value #
Compares a saved value and runs child steps.

Attributes
- key: Name of the value to compare
- comparator: Comparison method
- =: Run if text matches
- !=: Run if text does not match
- >, >=, <, <=: Run if numeric comparison is true
- match: Run if regex pattern matches from beginning of text
- search: Run if regex pattern exists anywhere in text
- value: Value to compare, either direct input or User Variable in
${key}
format
If Changed #
Compares the previous step screen with the current screen and runs child steps if changes are detected.
Useful for detecting toast popups or video playback.

Attributes
- UIObject: UIObject to check for changes
- threshold (%): Change detection threshold (default: 10%, range: 1–100%)
- wait timeout (ms): Maximum wait time in milliseconds (default: 5,000, range: 3,000–10,000)
If Role #
Runs child steps only on specific devices in D2D testing, based on roles defined in Scenario Settings.

Attributes
- role: Device role to run child steps on (maximum 4)
To learn more, see [Stego User Guide > 10.0. Scenario Examples].
Else #
Executes when the parent action’s condition is not met.

You can create an Else action by hovering over an If step and clicking the Add else block button that appears.
Loop UIObject #
Repeats child steps based on UIObject existence.
Useful for scrolling through lists until the desired item appears.

Attributes
- UIObject: UIObject to check for existence
- comparator
- EXISTS: Repeat while UIObject exists
- NOT EXISTS: Repeat while UIObject does not exist
- limit: Maximum repeat count (default: 5, range: 1–1,000)
Loop NTimes #
Repeats child steps a specified number of times.

Attributes
- limit: Number of repeats (default: 5, range: 1–1,000)
Loop Content #
Compares UIObject text or color with a set value and repeats child steps if conditions match.

Attributes
- UIObject: UIObject to compare text or color from
- comparator: Comparison method
- =: Run if text matches
- !=: Run if text does not match
- >, >=, <, <=: Run if numeric comparison is true
- match: Run if regex pattern matches from beginning of text
- search: Run if regex pattern exists anywhere in text
- color: Run if UIObject center color matches with threshold
- When comparator is color
- value: Value to compare, direct input or User Variable in
${key}
format
- value: Value to compare, direct input or User Variable in
- When comparator is =, !=, >, >=, <, <=, match, search
- color: Hex color code (e.g.,
#BABABA
) - threshold: Color similarity threshold (default: 0.9)
- color: Hex color code (e.g.,
- limit: Repeat count (default: 5, range: 1–1,000)
Loop Value #
Compares a saved value and repeats child steps if conditions match.

Attributes
- key: Name of value to compare
- comparator
- =: Run if text matches
- !=: Run if text does not match
- >, >=, <, <=: Run if numeric comparison is true
- match: Run if regex pattern matches from beginning of text
- search: Run if regex pattern exists anywhere in text
- value: Value to compare, either direct input or User Variable in
${key}
format - limit: Repeat count (default: 5, range: 1–1,000)
Wait For #
Waits until a screen element appears or disappears. Useful for handling irregular loading times.

Attributes
- UIObject: UIObject to wait for
- wait timeout (ms): Maximum wait time in milliseconds (default: 5,000ms, range: 1,000–600,000)
- until: Waiting condition
- EXISTS: Wait until screen element appears
- NOT EXISTS: Wait until screen element disappears
Assertion #
Verifies expected results during test execution.
Assert UIObject #
Checks if a UIObject exists.

Attributes
- UIObject: UIObject to check
- wait timeout (ms): Maximum wait time in milliseconds (default: 0, range: 0–600,000)
- comparator
- EXISTS: Pass if UIObject exists
- NOT EXISTS: Pass if UIObject does not exist
- custom message: Message to display in the check result
- label: Label name to add when assertion fails (maximum 10)
- type: Failure handling method
- FAILED: Display in red and stop test
- WARNING: Display in yellow and continue test
Assert Content #
Compares UIObject text or color with a specified value and checks the result.

Attributes
- UIObject: UIObject to check
- comparator
- =: Pass if text matches
- !=: Pass if text does not match
- >, >=, <, <=: Pass if numeric comparison is true
- match: Pass if regex pattern matches from beginning of text
- search: Pass if regex pattern exists anywhere in text
- color: Pass if UIObject center color matches with threshold
- When comparator is =, !=, >, >=, <, <=, match, search
- value: Value to compare, direct input or User Variable in
${key}
format
- value: Value to compare, direct input or User Variable in
- When comparator is color
- color: Hex color code (e.g.,
#BABABA
) - threshold: Color similarity threshold (default: 0.9)
- color: Hex color code (e.g.,
- wait timeout (ms): Maximum wait time in milliseconds (default: 0, range: 0–600,000)
- custom message: Message to display in the check result
- label: Label name to add when assertion fails (maximum 10)
- type: Failure handling method
- FAILED: Display in red and stop test
- WARNING: Display in yellow and continue test
Assert Value #
Compares a saved value with a specified value and checks the result.

Attributes
- key: Name of the value to check
- comparator: Comparison method
- =: Pass if text matches
- !=: Pass if text does not match
- >, >=, <, <=: Pass if numeric comparison is true
- match: Pass if regex pattern matches from beginning of text
- search: Pass if regex pattern exists anywhere in text
- value: Value to compare (direct input or User Variable in
${key}
format) - wait timeout (ms): Maximum wait time in milliseconds (default: 0, range: 0–600,000)
- custom message: Message to display in the check result
- label: Label name to add when assertion fails (maximum 10)
- type: Failure handling method
- FAILED: Display in red and stop test
- WARNING: Display in yellow and continue test
Assert Changed #
Checks for UIObject changes between the previous step and the current screen state.

Attributes
- UIObject: UIObject to check
- threshold (%): Change detection threshold percentage (default: 10, range: 1–100)
- wait timeout (ms): Maximum wait time in milliseconds (default: 5,000, range: 3,000–10,000)
- custom message: Message to display in the check result
- label: Label name to add when assertion fails (maximum 10)
- type: Failure handling method
- FAILED: Display in red and stop test
- WARNING: Display in yellow and continue test
Assert Wait For #
Waits until a UIObject appears or disappears, then checks the result.
Useful for handling irregular loading times.

Attributes
- UIObject: UIObject to check
- wait timeout (ms): Maximum wait time in milliseconds (default: 0, range: 0–600,000)
- until: Assertion condition
- EXISTS: Pass if UIObject exists
- NOT EXISTS: Pass if UIObject does not exist
- custom message: Message to display in the check result
- label: Label name to add when assertion fails (maximum 10)
- type: Failure handling method
- FAILED: Display in red and stop test
- WARNING: Display in yellow and continue test
Assert Message #
Check if toast messages appear.

Attributes
- comparator
- =: Pass if text matches
- !=: Pass if text does not match
- >, >=, <, <=: Pass if numeric comparison is true
- match: Pass if regex pattern matches from beginning of text
- search: Pass if regex pattern exists anywhere in text
- value: Value to compare, direct input or User Variable in
${key}
format - wait timeout (ms): Maximum wait time in milliseconds (default: 0, range: 0–600,000)
- use previous screen
- TRUE: Check for changes starting before the previous step runs
- FALSE: Check for changes starting from after the current step runs
- custom message: Message to show as check result
- label: Label name to add when assertion fails (maximum 10)
- type: Failure handling method
- FAILED: Display in red and stop test
- WARNING: Display in yellow and continue test
Checkpoints #
Combines multiple verification items into a single action for batch validation.
Each checkpoint can verify a UIObject, its content, or a User Variable.

Attributes
- checkpoints: Defines the list of items to verify.
- Target Type: Type of item to check.
- UIObject: Checks whether the specified UIObject exists.
- UIObject Content: Compares the text of a UIObject with an expected value.
- User Variable: Compares a saved variable value with an expected value.
- Expected Value: Defines the UIObject, key, value, and comparator attributes for verification.
- For UIObject targets:
- EXISTS: Pass if the UIObject exists.
- NOT EXISTS: Pass if the UIObject does not exist.
- For UIObject Content / User Variable targets:
- =: Pass if the text matches.
- !=: Pass if the text does not match.
- >, >=, <, <=: Pass if the numeric comparison is true.
- match: Pass if the regex pattern matches from the beginning of the text.
- search: Pass if the regex pattern exists anywhere in the text.
- For UIObject targets:
- Target Type: Type of item to check.
- Add icon (
): Adds a new checkpoint item to the list.
- Check icon (
): Saves changes to the selected checkpoint.
- Cancel icon (
): Discards changes and switches to view mode.
- wait timeout (ms): Maximum wait time. (default: 5,000; range: 5,000–10,000)
- label: Label name (up to 10). When the assertion fails, the label is added.
- on failure: Defines how failures are handled.
- Stop as a failure: Marks red and stops the test.
- Continue with a warning: Marks yellow and continues the test.
Advanced #
Structure scenarios and control tests with advanced features.
Common Scenario #
Loads and uses a Common Scenario.

Attributes
- Common Scenario : Common Scenario to use
Script #
Runs custom code for operations such as calculations or external API calls.

Attributes
- language: Language to use (default: python)
- script: Code to run
: Copy written code
: Write code in large screen editor
: Execute code
- timeout (ms): Maximum run time in milliseconds (default: 10,000, range: 3,000–1,200,000)
The bash option is no longer recommended and is kept only for backward compatibility. Use Python for new or updated scripts.
Block #
Groups related steps to make the scenario structure clearer.

Attributes
- Description: Text description of the Block.
- The entered content appears as a summary on the right side of the Block.
Clicking the summary expands the full description.
You can collapse the full description by clicking or the summary area again.
To expand or collapse all descriptions at once, use the button at the top of Scenario Editor.
Finish #
End the test immediately. The final result status is determined by the selected type.

Attributes
- type: Test result status (options: PASS, FAILED, WARNING)
- message: Reason for ending the test (displayed in the result)
- label: Label name to add when the test ends (maximum 10)
Sync #
Synchronize run timing of multiple devices in D2D testing.
All devices stop at the Sync point and continue to the next step simultaneously once every device has reached it.
Appears only when device roles are set in Scenario Settings > D2D Test.
Execution flow example
- Device A: Step 1 → Step 2 → Sync → (wait) → Step 5
- Device B: Step 1 → Step 3 → Step 4 → Sync → (wait) → Step 5
→ After both devices reach Sync, Step 5 runs at the same time.
Typical use cases
- Confirming message receipt after sending
- Confirming file sharing completion simultaneously
- Performing synchronized actions in games
To learn more, see [Stego User Guide > 10.0. Scenario Examples].
Inspect #
Used for creating test scenarios on DRM-protected screens that include secure keypads.
This action utilizes the Accessibility Selector to reliably identify keypad elements even when their numeric layout changes dynamically.
It prevents recognition failures that may occur when the keypad arrangement is randomized for security purposes.
