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)
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)
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 #
Enter text using the keyboard. Touch an input field to display the keyboard, then set UIObject to Full Screen.

Attributes
- UIObject: UIObject to enter text (use Full Screen with keyboard visible)
- value: Text to enter (direct input or User Variable in
${key}
format)
Secure Keyboard #
Enter text using a secure keyboard, commonly used in Korean financial and security apps.
Supports app pattern input (excluding device lock screen patterns). Activate the secure keyboard, then set UIObject to Full Screen.

Attributes
- UIObject: UIObject to enter text (use Full Screen with secure keyboard visible)
- value: Value to enter in secure keyboard
- typename: Secure keyboard type (automatically recognized by AI)
- interval (ms): Interval between key inputs in milliseconds (default: 1,000, range: 500–5,000)
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.

Attributes
- UIObject: UIObject to read text from
- key: Name of the value to store
- type
- String: Store as text
- Number: Store numbers only
- 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].
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: Maximum wait time in milliseconds (default: 5,000ms, range: 1,000–600,000ms)
- 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: 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 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
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: ERROR, WARNING, PASS)
- 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].