find_elements
Locate page elements by visible text, CSS selector, ARIA role, or screen region. Returns compact matches with unique IDs; AND/OR combine criteria.
Instructions
Deterministic search by visible text, CSS selector, ARIA role, and/or screen region → compact uid-keyed matches; anchors include their resolved href, so find_elements{role:'link'} lists the page's links WITH destinations (then navigate to browse them). Criteria are AND-combined by default; pass match:'any' for a union (OR) when over-specifying returns nothing, and visibleOnly:false to include display:none/hidden elements. Use to locate the element a user described in words ('the Subscribe button', 'the header nav') before inspecting it. Prefer this (or page_snapshot) over guessing a selector. For a point in a screenshot use node_at_point; to have the human physically click the element use pick_element.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "find_elements"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | ARIA role: explicit [role] attribute or tag-implied (link, button, heading, navigation, …) | |
| text | No | Case-insensitive substring of the element's own text | |
| limit | No | ||
| match | No | 'all' (default): AND — an element must satisfy every criterion. 'any': OR — union of elements matching any single criterion, de-duplicated. Use any when over-specifying returned nothing. | all |
| region | No | Viewport rectangle (CSS px) the element must intersect | |
| selector | No | CSS selector, matched via querySelectorAll | |
| visibleOnly | No |