Skip to main content
An action_node represents a single atomic action. Each node contains exactly one action type.

Structure

{
  "type": "action_node",
  "interaction_action": {
    "click_element": {
      "command": "get_by_role(\"button\", name=\"Submit\")",
      "prompt_instructions": "Click the submit button"
    }
  },
  "before_sleep_time": 0.0,
  "end_sleep_time": 1.0
}

Action Types

Each action node contains exactly one of:
ActionPurposeDocumentation
interaction_actionClick, type, select, navigateInteraction Actions
extraction_actionExtract data, screenshotsExtraction Actions
assertion_actionVerify page conditionsAssertion Actions
python_script_actionCustom Python codePython Scripts

Timing Properties

PropertyTypeDefaultDescription
before_sleep_timefloat0.0 (extractions: 3.0)Seconds to wait before action
end_sleep_timefloat1.0 (extractions: 0.0)Seconds to wait after action
expect_new_tabboolFalseAction opens a new tab
max_new_tab_wait_timefloat0.0 (if expect_new_tab: 10.0)Max wait for new tab

Default Timing by Action Type

Action Typebefore_sleep_timeend_sleep_time
Interaction0.01.0
Extraction3.00.0
Assertion0.00.0
2FA0.00.0

Examples

Basic Click

{
  "type": "action_node",
  "interaction_action": {
    "click_element": {
      "command": "get_by_role(\"button\", name=\"Continue\")",
      "prompt_instructions": "Click continue"
    }
  }
}

With Custom Timing

{
  "type": "action_node",
  "interaction_action": {
    "click_element": {
      "command": "get_by_role(\"button\", name=\"Submit\")"
    }
  },
  "before_sleep_time": 2.0,
  "end_sleep_time": 3.0
}

Opens New Tab

{
  "type": "action_node",
  "interaction_action": {
    "click_element": {
      "command": "get_by_role(\"link\", name=\"View Details\")"
    }
  },
  "expect_new_tab": true
}
See Timing & Retries for detailed timing configuration.