Skip to content

Inputs, variables and templates

Define named inputs in Settings and refer to them under params. For an input named search, the reference is ${params.search}. The former automatic parameters namespace is not the current named-input root.

String, Number, JSON and File inputs have distinct types. A file input refers to an authorized saved file; use a supported Repeat On file reader to traverse it. Managed-secret inputs use the supported reference controls and applicable rights rather than a literal value intended for inspection.

Binding fields support literal values, whole-value references and text templates. Use the field’s variable assistance to insert a reference. Merely displaying an existing literal must not turn its contents into interpolation.

Example intention Result
Literal text Search: ${params.search} The exact characters, when kept in literal mode.
Whole-value reference to params.count The original typed value, such as a number.
Template Search: ${params.search} Text with the referenced value inserted.

A whole-value reference preserves false, zero, empty text, null, arrays and objects. A template always produces text. A string-only field still requires a string-compatible value.

Use ${customer.name} for ordinary keys, ${items[0]} for an array index and ${params["odd.key"]} for a key containing a literal dot. Indexes are nonnegative whole numbers.

References are paths, not expressions. Arithmetic, function calls and JavaScript such as ${name.trim()} are not supported. Missing values fail the action; they do not silently become empty strings. Values inserted into URLs or selectors are not automatically escaped for those contexts.

Use Set with a destination path and a literal/reference value, a supported element extraction or a template format. For example, extract CSS h1 into pageTitle, then reference ${pageTitle} later.

An unformatted extraction preserves its value. A template format returns text and can refer to ${currentValue} during that extraction. currentValue is not a permanently retained global extraction result.

Reference Meaning
context.index This action’s zero-based iteration.
context.value Current item for an array repetition, while available.
context.parent Nearest containing action’s context.
context.depth Action nesting depth, starting at zero.

Inside an action directly in a Repeat On body, use ${context.parent.value} for that loop’s item. An additional If block adds another parent level. DOM repetition has an index and row selection, but no JSON item value.

The read-only subsession root describes the latest external Subsession outcome/results when requested. It is not automatically merged into ordinary variables. Use an explicit Set to retain selected values. See Subsessions.

Toolbox keeps user variables between commands. Debug can also retain actual loop context for deliberate child testing; an unrelated root Play does not invent that context. Source expressions for Browser coordinates and explicit custom JavaScript formats are separate capabilities from the path-only binding notation above. Stop does not reseed input defaults. A fresh Attempt starts again from the Session’s original effective inputs rather than the previous Attempt’s mutations.