Steps and selectors

What each step type does, how elements are targeted, and why some selectors survive redesigns while others do not.

View as Markdown

A step is one instruction. The recorder writes them for you, but understanding the vocabulary makes it far easier to fix a test later, because most maintenance is editing a step rather than re-recording a journey.

  1. 1The step type. Click, Type Text, Assert, and the rest each behave differently.
  2. 2The description. Edit it so the run report reads clearly.
  3. 3Replay just this step to check a fix without running the whole journey.
  4. 4Edit the step to change its selector or value.
  5. 5Drag the handle to reorder steps.

Step types

  • Click: press a button, link, or any clickable element.
  • Type: enter text into a field. The value can contain variables.
  • Navigate: go straight to a URL rather than clicking your way there.
  • Wait: pause for a fixed time, or until something appears.
  • Scroll: move the viewport, which matters for lazy-loaded content.
  • Hover: reveal menus and tooltips that only appear on hover.
  • Upload: attach a file from your Files library to a file input.
  • Dialog: accept or dismiss a native browser alert, confirm, or prompt.
  • Assert: check that something is true rather than doing anything.
  • Script: run a saved Node, Python, or TypeScript script mid-flow.
  • Block: expand a saved group of steps in place.

How elements are targeted

Every acting step needs to know which element it applies to. The recorder captures a selector at the moment you interact, choosing the most specific stable-looking path it can find. That works well for buttons with stable ids or distinctive text, and less well for elements whose classes are generated by a build step and change on every deploy.

If a selector contains a long random-looking class name, expect it to break the next time your CSS is rebuilt. Adding a data attribute to the element in your own code and targeting that is the durable fix.

Editing a step

Click any step in the recorder to open it. You can change its description, adjust the selector or value, mark it continue-on-failure so a non-critical step does not abort the run, and reorder it by dragging. Replaying a single step from the recorder is the fastest way to confirm a fix without running the whole journey again.

Still stuck, or spotted something out of date?

Contact support