btzchrome

Execute actions in the browser

Interact with the browser by executing a sequence of specific actions.

Google Chrome Action








Customization Options

Configurable fields you can adjust in your automation

Control Google Chrome from Botize by sending a recipe: a JSON list of steps that the extension will play in order on the connected tab.

This page documents the full recipe format: how to build one, every action available, and how elements are matched on the page.

Recipe format

A recipe is a JSON object with a single steps array:

{
  "steps": [
    { "action": "navigate", "url": "https://example.com" },
    { "action": "click", "role": "button", "name": "Accept" }
  ]
}

Steps run sequentially. If any step fails, the recipe stops and reports the error back to Botize.

Recording a recipe

The fastest way to build a recipe is to record it:

  1. Open the Botize extension popup on the tab you want to automate.
  2. Click ● REC and perform the actions (click, type, navigate…).
  3. Click â–  STOP to finish.
  4. Click ↓ Export to download the recipe as JSON.

You can then tweak the JSON manually or import it again with ↑ Import.

How elements are matched

Actions that interact with the page (click, type, paste) locate elements using the ARIA accessibility tree, not CSS selectors. This makes recipes resilient to cosmetic HTML changes.

Each interactive step uses these fields to find its target:

FieldDescription
roleThe ARIA role of the element (button, link, textbox, checkbox…).
nameThe accessible name — usually the visible label or aria-label.
nameStartsWith(optional) Prefix match on the name. Useful when the name contains dynamic data (user names, counters, timestamps). When set, name is ignored.
parentRole(optional) Narrows the search to elements inside a specific parent role.
parentName(optional) Combined with parentRole, requires the parent to also match.

When several elements match, the first one in document order wins — so on a list of followers, a click step with nameStartsWith: "Follow" will always target the first follower.

Navigation actions

navigate

Load a URL in the current tab and wait for it to finish loading.

ParameterTypeRequiredDescription
urlstringyesThe URL to open.
{ "action": "navigate", "url": "https://example.com" }

wait

Pause the recipe for a fixed amount of time.

ParameterTypeRequiredDescription
msnumbernoMilliseconds to wait. Default: 1000.
{ "action": "wait", "ms": 2500 }

Interaction actions

click

Click on an element located via ARIA.

ParameterTypeRequiredDescription
rolestringyesARIA role of the target.
namestringyes*Accessible name. *Optional when using nameStartsWith.
nameStartsWithstringnoPrefix match for the name.
parentRolestringnoRestrict to a parent role.
parentNamestringnoRestrict to a parent name.
wait_for_navigationbooleannoIf true, waits for the page to reload after the click.
delaynumbernoDelay before executing the step, in ms.
{ "action": "click", "role": "button", "name": "Add to cart" }

type

Type text into an input or textbox. The field must already have focus — usually preceded by a click step on the input.

ParameterTypeRequiredDescription
rolestringyesARIA role of the input (textbox, searchbox, combobox…).
namestringyesAccessible name of the input.
textstringyesText to type.
parentRole, parentName, nameStartsWithnoSame matching fields as click.
{ "action": "type", "role": "searchbox", "name": "Search", "text": "botize" }

paste

Paste a file (image, document…) into a file-drop area or editor that accepts paste events.

ParameterTypeRequiredDescription
role, name, …Same matching fields as click.
file_urlstringyesPublic URL of the file to paste.
{
  "action": "paste",
  "role": "textbox",
  "name": "Message",
  "file_url": "https://cdn.example.com/photo.jpg"
}

Data extraction actions

Extraction actions populate the Data from Browser output returned to Botize. You can combine several in the same recipe.

get_aria_tree

Return the accessibility tree of the current page. Ideal for letting an AI understand the page structure.

ParameterTypeDefaultDescription
filterstringinteractiveinteractive keeps only actionable nodes (buttons, links, inputs…). all keeps everything.
include_headingsbooleanfalseInclude heading nodes even in interactive mode.
max_nodesnumber500Hard cap to prevent huge payloads.
{ "action": "get_aria_tree", "filter": "interactive", "include_headings": true }

get_landmark_text

Extract the visible text of the page grouped by ARIA landmark (main, navigation, banner, contentinfo, complementary, search, region). Best suited for product pages, articles and content-heavy pages.

ParameterTypeDefaultDescription
sectionsstring[]allLimit the output to specific landmarks.
include_linksbooleanfalseInclude the list of links inside each landmark.
include_imagesbooleanfalseInclude the list of images inside each landmark.
{
  "action": "get_landmark_text",
  "sections": ["main"],
  "include_links": true,
  "include_images": true
}

get_page_elements

Extract repeating items (search results, product cards, posts…) grouped by their semantic section and parent.

ParameterTypeDefaultDescription
item_rolestringlistitemARIA role of the items to extract.
sectionsstring[]allLimit to specific landmarks.
pathsstring[]—Narrow the output to specific branches, e.g. "main > list_results".
{ "action": "get_page_elements", "item_role": "listitem", "sections": ["main"] }

Each extracted item includes its text, outbound links and images.

screenshot

Capture a JPEG screenshot of the current tab.

ParameterTypeDefaultDescription
full_pagebooleanfalseIf true, captures the full scrollable page instead of just the viewport.
{ "action": "screenshot", "full_page": true }

The screenshot is returned in the Screenshot URL output.

extract

Extract a single value (text or image) from the page. Typically generated by clicking Extract on the recorder; manual use is uncommon.

ParameterTypeDescription
namestringName of the variable to store the value under.
xpathsstring[]XPath candidates. The extension picks the value confirmed by most paths.
isImagebooleanIf true, extracts src instead of text.
{ "action": "extract", "name": "price", "xpaths": ["//span[@data-price]"] }

Example: product page scrape

{
  "steps": [
    { "action": "navigate", "url": "https://example-shop.com/product/123" },
    {
      "action": "get_landmark_text",
      "sections": ["main"],
      "include_images": true
    },
    { "action": "screenshot" }
  ]
}

Example: click the first follow-back button on X

{
  "steps": [
    { "action": "navigate", "url": "https://x.com/your-handle/followers" },
    {
      "action": "click",
      "role": "button",
      "nameStartsWith": "Follow back",
      "parentRole": "generic",
      "parentName": "Follow back"
    }
  ]
}



Information provided

When executed, this operation delivers the following data, which can be used in the same automatic task.

  • Tags

  • URL {{url}}

    URL

  • Data from Browser {{browser_data}}

    Data from Browser

  • Screenshot URL {{screenshot_url}}

    Public URL of the screenshot taken by the browser (if a screenshot action was included in the recipe)

  • Status Code {{status_code}}

    Status Code




Write us

By email or by Telegram.
Monday to Friday from 7 a.m. to 1 p.m. (Spain).

Let's talk

Choose day and time.
We share the screen and answer all your questions.