Stagehand Locator
All Locator methods available when using the Stagehand driver.
Access via runtime.page.locator(...) after launching a Stagehand runtime.
How these methods work over HTTP
Every method below is a remote call. The SDK translates it into a structured step sent to a single endpoint:
The call field maps directly to the method name. args is a JSON array of the method’s arguments. You can batch multiple steps in one request.
Actions
click(options?)
Click the element at its visual center.
The method:
- Scrolls element into view
- Gets element geometry
- Moves mouse to center
- Dispatches mousePressed and mouseReleased events
Options include:
- button: ‘left’ | ‘right’ | ‘middle’ (default: ‘left’)
- clickCount: Number of clicks (default: 1)
fill(value)
Fill an input, textarea, or contenteditable element.
The method intelligently handles different input types:
- Uses native value setter for special inputs (date, number, etc.)
- Types text character-by-character for regular inputs
- Clears existing content before filling
type(text, options?)
Type text into the element with optional delay between keystrokes.
If delay is not specified, uses Input.insertText for efficiency.
hover()
Move the mouse cursor to the element’s center without clicking.
Scrolls the element into view and dispatches a mouse move event.
selectOption(values)
Select one or more options in a <select> element.
For multi-select elements, pass an array of values.
Returns string[]
— Array of values that were actually selected.
setInputFiles(files)
Set files on an <input type=“file”> element.
Accepts:
- File path (string)
- Array of file paths
- File payload object { name, mimeType, buffer }
- Array of file payloads
Pass an empty array to clear the file selection.
highlight(options?)
Visually highlight the element with an overlay.
Useful for debugging and visual verification.
Options include:
- durationMs: How long to display the highlight (default: 800)
- borderColor: Border color RGBA values
- contentColor: Content fill color RGBA values
scrollTo(percent)
Scroll the element to a specific position.
For <html> or <body> elements, scrolls the window. Otherwise, scrolls the element itself.
centroid()
Get the center coordinates of the element.
Returns { x: number; y: number }
— Center point in CSS pixels { x, y }.
sendClickEvent(options?)
Dispatch a DOM click event directly on the element.
This dispatches an event directly without synthesizing real pointer input. Useful for elements that rely on click handlers without needing hit-testing.
Options include:
- bubbles: Whether the event bubbles (default: true)
- cancelable: Whether the event is cancelable (default: true)
- composed: Whether the event crosses shadow DOM boundaries (default: true)
- detail: Click count detail (default: 1)
Queries
count()
Return the number of elements matching this locator.
Returns number
nth(index)
Return a locator for the nth matching element.
Index is zero-based.
Returns RemoteStagehandLocator
first()
Return a locator for the first matching element.
Returns RemoteStagehandLocator
Content
inputValue()
Get the current value of an input element.
Works with: <input>, <textarea>, <select>, contenteditable elements.
Returns string
— The element’s input value.
textContent()
Get the element’s text content (raw).
Returns string
— The element’s textContent property.
innerText()
Get the element’s visible text (layout-aware).
Returns string
— The element’s innerText property.
innerHtml()
Get the element’s inner HTML.
Returns string
— The element’s innerHTML property.
backendNodeId()
Get the DOM backend node ID for the element.
Useful for identity comparisons without maintaining element handles.
Returns number
— Unique identifier for the DOM node.
State Checks
isVisible()
Check if the element is visible.
Returns boolean
— true if element is attached and visible.
isChecked()
Check if a checkbox or radio button is checked.
Also considers aria-checked for ARIA widgets.
Returns boolean
— true if checked.

