add_step
Add a step to an Easy Spec flow at the end, or insert into a nested Conditional/Repeat/Iterate body with parentPath. Provide flowId and step object to extend your test automation flow.
Instructions
Add a step to a flow, at the end by default. Use parentPath to insert into a Conditional/Repeat/Iterate step's own nested body.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | ||
| step | Yes | A step object: { kind, method, selector?, pageObjectName?, pageObjectMethod?, pageObjectArgs?, elementAlias?, scopeName?, scopeSelector?, args?, options?, negate?, variable?, raw?, condition?, init?, update?, steps?, iterableName?, itemVarName? } -- same shape as a flow.json step; see get_flow on an existing flow for real examples of each kind. `selector`/`scopeSelector` are Playwright locator-chain EXPRESSIONS (see get_page_object's own description), not bare selector-engine strings -- e.g. "getByRole('button', { name: 'Submit' })", spliced as page.<selector> (or <scope>.<selector> when scoped) in generated code. scopeName/scopeSelector only apply to a step NOT bound to a page-object method (a page-object-bound step's scope comes from that method's own scope assignment instead -- see set_method_scope): scopeSelector defines a new flow-local scope (reused by any later step in this SAME flow that sets just scopeName to the same value); a step with only scopeName reuses whichever earlier step in this flow first defined that name. `kind: "raw"` is ONLY for genuinely inline, unnamed code (the `raw` field, its own JS/TS statement(s)). Calling a shared, project-wide Util function instead (see create_util/set_util_body/set_util_params/set_util_group_name) is NOT a `raw` step at all -- the step's own `kind` IS the util's current group name (every util always belongs to a group, defaulting to "custom-utils"; see list_util_groups), and `method` names which function within it, exactly like kind:"context"+method:"clearCookies" -- e.g. { kind: "custom-utils", method: "connectDb", args?, variable? }. Look up a util's current groupName via get_util/list_utils before authoring a step that calls it. | |
| flowId | Yes | ||
| project | No | Path to the project root (same folder the side panel connects to). Defaults to the EASYSPEC_PROJECT environment variable if omitted. | |
| parentPath | No |