Skip to content

Browser Automation

Full web automation: navigation, interaction, data extraction, screenshots, and performance monitoring.

38 modules

ModuleDescription
Click ElementClick an element on the page
Close BrowserClose the browser instance and release resources
Capture ConsoleCapture browser console logs (errors, warnings, info)
Manage CookiesGet, set, or clear browser cookies
Handle DialogHandle alert, confirm, and prompt dialogs
Download FileDownload file from browser
Drag and DropDrag and drop elements
Emulate DeviceEmulate a device or set custom viewport
Ensure BrowserEnsure a browser session exists (reuse or launch)
Execute JavaScriptExecute JavaScript code in page context
Extract DataExtract structured data from the page
Find ElementsFind elements in page and return element ID list
Fill FormSmart form filling with automatic field detection
Switch FrameSwitch to iframe or frame context
Mock GeolocationMock browser geolocation
Go to URLNavigate to a specific URL
Hover ElementHover mouse over an element
Launch BrowserLaunch a new browser instance with Playwright
Navigate HistoryNavigate browser history (back, forward, reload)
Network MonitorMonitor and intercept network requests
List PagesList all open browser pages/tabs
Paginate & ExtractAuto-paginate through pages and extract data
Generate PDFGenerate PDF from current page
Performance MetricsCollect browser performance metrics
Press KeyPress a keyboard key
Record ActionsRecord user actions as workflow
Release BrowserRelease browser session (close only if owned)
Take ScreenshotTake a screenshot of the current page
Scroll PageScroll page to element, position, or direction
Select OptionSelect option from dropdown element
DOM SnapshotCapture DOM snapshot of the current page
Browser StorageAccess localStorage and sessionStorage
Manage TabsCreate, switch, and close browser tabs
Browser TraceStart, stop, or save browser performance traces
Type TextType text into an input field
Upload FileUpload file to file input element
Set ViewportGet or set the browser viewport size
WaitWait for a duration or until an element appears

Modules

Click Element

browser.click

Click an element on the page

Parameters:

NameTypeRequiredDefaultDescription
click_methodselect (text, button, id, selector)NotextChoose the easiest way to identify the element you want to click
targetstringNo-e.g. "Submit", "Next Page", "Login"
selectorstringNo-CSS selector, XPath, or text selector
buttonselect (left, right, middle)NoleftWhich mouse button to use for clicking
click_countnumberNo1Number of clicks (2 for double-click, 3 for triple-click)
forcebooleanNoFalseForce click even if element is not actionable (covered, invisible)
modifiersarrayNo-Modifier keys to hold during click
timeoutnumberNo30000Maximum time to wait in milliseconds

Output:

FieldTypeDescription
browserobjectBrowser session (pass-through for chaining)
statusstringOperation status (success/error)
selectorstringOperation status (success/error)
methodstringClick method used

Example: Example

yaml
click_method: text
target: Submit

Example: Example

yaml
click_method: id
target: login-button

Example: Example

yaml
click_method: selector
selector: #submit-button

Close Browser

browser.close

Close the browser instance and release resources

Parameters:

NameTypeRequiredDefaultDescription
_no_paramsbooleanNoTrueThis module requires no parameters

Output:

FieldTypeDescription
statusstringClose the browser instance
messagestringClose the browser instance

Example: Example

yaml

Capture Console

browser.console

Capture browser console logs (errors, warnings, info)

Parameters:

NameTypeRequiredDefaultDescription
levelselect (all, error, warning, info, log)NoallFilter console messages by level
timeoutnumberNo5000Maximum time to wait in milliseconds
clear_existingbooleanNoFalseClear existing messages before capturing

Output:

FieldTypeDescription
statusstringOperation status (success/error)
messagesarrayOperation status (success/error)
countnumberOperation status (success/error)

Example: Example

yaml
timeout: 3000

Example: Example

yaml
level: error
timeout: 5000

Manage Cookies

browser.cookies

Get, set, or clear browser cookies

Parameters:

NameTypeRequiredDefaultDescription
actionselect (get, set, clear, delete)Yes-Action to perform on the storage
namestringNo-Name of the cookie
valuestringNo-Value of the cookie
domainstringNo-Cookie domain
pathstringNo/Cookie path
securebooleanNoFalseWhether cookie is secure (HTTPS only)
httpOnlybooleanNoFalseWhether cookie is HTTP only
expiresnumberNo-Cookie expiration time (Unix timestamp)

Output:

FieldTypeDescription
statusstringOperation status (success/error)
cookiesarrayOperation status (success/error)
countnumberOperation status (success/error)

Example: Example

yaml
action: get

Example: Example

yaml
action: get
name: session_id

Example: Example

yaml
action: set
name: user_pref
value: dark_mode
domain: example.com

Example: Example

yaml
action: clear

Handle Dialog

browser.dialog

Handle alert, confirm, and prompt dialogs

Parameters:

NameTypeRequiredDefaultDescription
actionselect (accept, dismiss, listen)Yes-How to respond to the dialog
prompt_textstringNo-Text to enter in prompt dialog (for accept action)
timeoutnumberNo30000Maximum time to wait in milliseconds

Output:

FieldTypeDescription
statusstringOperation status (success/error)
messagestringOperation status (success/error)
typestringOperation status (success/error)
default_valuestringResult message describing the outcome

Example: Example

yaml
action: accept

Example: Example

yaml
action: dismiss

Example: Example

yaml
action: accept
prompt_text: Hello World

Example: Example

yaml
action: listen
timeout: 5000

Download File

browser.download

Download file from browser

Parameters:

NameTypeRequiredDefaultDescription
selectorstringNo-CSS selector, XPath, or text selector to find the element
save_pathstringYes-Path where to save the downloaded file
timeout_msnumberNo60000Maximum time to wait in milliseconds

Output:

FieldTypeDescription
statusstringOperation status (success/error)
pathstringOperation status (success/error)
filenamestringOperation status (success/error)
sizenumberFile or resource path

Example: Example

yaml
selector: #download-btn
save_path: /downloads/report.pdf

Example: Example

yaml
selector: a.download
save_path: /downloads/large-file.zip
timeout_ms: 120000

Drag and Drop

browser.drag

Drag and drop elements

Parameters:

NameTypeRequiredDefaultDescription
sourcestringYes-CSS selector, XPath, or text selector to find the element
targetstringYes-CSS selector, XPath, or text selector to find the element
source_positionobjectNo-Position within source element {x, y} as percentages
target_positionobjectNo-Position within target element {x, y} as percentages
timeoutnumberNo30000Maximum time to wait in milliseconds

Output:

FieldTypeDescription
statusstringPosition within target element {x, y} as percentages
sourcestringPosition within target element {x, y} as percentages
targetstringOperation status (success/error)

Example: Example

yaml
source: #item1
target: #dropzone

Example: Example

yaml
source: .draggable
target: .container
target_position: {"x": 0.5, "y": 0.5}

Emulate Device

browser.emulate

Emulate a device or set custom viewport

Parameters:

NameTypeRequiredDefaultDescription
deviceselect (iphone_12, iphone_14, iphone_14_pro_max, iphone_se, pixel_7, pixel_5, galaxy_s21, galaxy_s23, ipad_pro, ipad_mini, galaxy_tab_s8, desktop_chrome, desktop_firefox, desktop_safari, desktop_edge, laptop, macbook_pro, custom)Yes-Device name to emulate (e.g. iPhone 13)
widthnumberNo-Viewport width in pixels
heightnumberNo-Viewport height in pixels
user_agentstringNo-Custom user agent string
is_mobilebooleanNo-Whether to emulate a mobile device
has_touchbooleanNo-Whether the device has touch support
device_scale_factornumberNo-Device pixel ratio

Output:

FieldTypeDescription
statusstringOperation status (success/error)
devicestringDevice name that was emulated
viewportobjectCurrent viewport dimensions
is_mobilebooleanWhether mobile emulation is active

Example: Example

yaml
device: iphone_14

Example: Example

yaml
device: ipad_pro

Example: Example

yaml
device: custom
width: 400
height: 800
is_mobile: true
has_touch: true
device_scale_factor: 2

Example: Example

yaml
device: desktop_chrome
user_agent: CustomBot/1.0

Ensure Browser

browser.ensure

Ensure a browser session exists (reuse or launch)

Parameters:

NameTypeRequiredDefaultDescription
headlessbooleanNoFalseRun browser without visible window
widthnumberNo1280Browser viewport width in pixels
heightnumberNo720Browser viewport height in pixels

Output:

FieldTypeDescription
statusstringWhether browser was launched or reused
messagestringWhether browser was launched or reused
is_ownerbooleanWhether browser was launched or reused

Example: Example

yaml
headless: false

Example: Example

yaml
headless: true

Execute JavaScript

browser.evaluate

Execute JavaScript code in page context

Parameters:

NameTypeRequiredDefaultDescription
scriptstringYes-JavaScript code to execute (can use return statement)
argsarrayNo-Arguments to pass to the script function

Output:

FieldTypeDescription
statusstringOperation status (success/error)
resultanyOperation status (success/error)

Example: Example

yaml
script: return document.title

Example: Example

yaml
script: return document.querySelectorAll("a").length

Example: Example

yaml
script: (selector) => document.querySelector(selector)?.textContent
args: ["#header"]

Example: Example

yaml
script: document.body.style.backgroundColor = "red"; return "done"

Extract Data

browser.extract

Extract structured data from the page

Parameters:

NameTypeRequiredDefaultDescription
selectorstringYes-CSS selector, XPath, or text selector to find the element
limitnumberNo-Maximum number of items to extract
fieldsobjectNo-Define fields to extract from each item

Output:

FieldTypeDescription
statusstringOperation status (success/error)
dataarrayOperation status (success/error)
countnumberOperation status (success/error)

Example: Example

yaml
selector: .g
limit: 10
fields: {"title": {"selector": "h3", "type": "text"}, "url": {"selector": "a", "type": "attribute", "attribute": "href"}}

Find Elements

browser.find

Find elements in page and return element ID list

Parameters:

NameTypeRequiredDefaultDescription
selectorstringYes-CSS selector, XPath, or text selector to find the element
limitnumberNo-Maximum number of items to extract

Output:

FieldTypeDescription
statusstringOperation status (success/error)
countnumberOperation status (success/error)
element_idsarrayOperation status (success/error)

Example: Find search results

yaml
selector: div.tF2Cxc
limit: 10

Fill Form

browser.form

Smart form filling with automatic field detection

Parameters:

NameTypeRequiredDefaultDescription
form_selectorstringNo-CSS selector for the form element (optional)
dataobjectYes-Key-value pairs to fill (key = field name/id, value = content)
field_mappingobjectNo-Custom selector mapping
clear_before_fillbooleanNoTrueClear existing field values before filling
submitbooleanNoFalseSubmit form after filling
submit_selectorstringNo-CSS selector for submit button
delay_between_fields_msnumberNo100Delay between filling each field (for more human-like behavior)

Output:

FieldTypeDescription
filled_fieldsarrayDelay between filling each field (for more human-like behavior)
failed_fieldsarrayList of fields that were filled
submittedbooleanList of fields that were filled

Example: Example

yaml
data: {"email": "user@example.com", "password": "secret123"}
submit: true

Example: Example

yaml
data: {"username": "john_doe", "bio": "Hello world"}
field_mapping: {"username": "#user-name-input", "bio": "textarea.bio-field"}

Switch Frame

browser.frame

Switch to iframe or frame context

Parameters:

NameTypeRequiredDefaultDescription
selectorstringNo-CSS selector, XPath, or text selector to find the element
namestringNo-Name attribute of the frame (alternative to selector)
urlstringNo-URL pattern to match frame (alternative to selector)
actionstringNoenterFrame action to perform
timeoutnumberNo30000Maximum time to wait in milliseconds

Output:

FieldTypeDescription
statusstringFrame action to perform
frame_urlstringOperation status (success/error)
frame_namestringOperation status (success/error)
framesarrayFrame URL

Example: Example

yaml
selector: iframe#content-frame

Example: Example

yaml
name: main-content

Example: Example

yaml
action: exit

Example: Example

yaml
action: list

Mock Geolocation

browser.geolocation

Mock browser geolocation

Parameters:

NameTypeRequiredDefaultDescription
latitudenumberYes-Latitude coordinate (-90 to 90)
longitudenumberYes-Longitude coordinate (-180 to 180)
accuracynumberNo100Position accuracy in meters

Output:

FieldTypeDescription
statusstringPosition accuracy in meters
locationobjectPosition accuracy in meters

Example: Example

yaml
latitude: 37.7749
longitude: -122.4194

Example: Example

yaml
latitude: 51.5074
longitude: -0.1278
accuracy: 10

Example: Example

yaml
latitude: 35.6762
longitude: 139.6503

Go to URL

browser.goto

Navigate to a specific URL

Parameters:

NameTypeRequiredDefaultDescription
urlstringYes-URL to navigate to
wait_untilselect (load, domcontentloaded, networkidle)NodomcontentloadedWhen to consider navigation complete
timeout_msnumberNo30000Maximum time to wait in milliseconds

Output:

FieldTypeDescription
statusstringOperation status (success/error)
urlstringNavigate to a specific URL

Example: Example

yaml
url: https://www.google.com
wait_until: domcontentloaded

Hover Element

browser.hover

Hover mouse over an element

Parameters:

NameTypeRequiredDefaultDescription
selectorstringYes-CSS selector, XPath, or text selector to find the element
timeout_msnumberNo30000Maximum time to wait in milliseconds
positionobjectNo-Click position relative to element (0-1 range)

Output:

FieldTypeDescription
statusstringOperation status (success/error)
selectorstringOperation status (success/error)

Example: Example

yaml
selector: .menu-item

Example: Example

yaml
selector: #dropdown-trigger
timeout_ms: 5000

Launch Browser

browser.launch

Launch a new browser instance with Playwright

Parameters:

NameTypeRequiredDefaultDescription
headlessbooleanNoFalseRun browser without visible window
widthnumberNo1280Browser viewport width in pixels
heightnumberNo720Browser viewport height in pixels
browser_typeselect (chromium, firefox, webkit)NochromiumBrowser engine to use (chromium, firefox, webkit)
proxystringNo-Proxy server URL
user_agentstringNo-Custom user agent string
localestringNoen-USBrowser locale (e.g. en-US, zh-TW, ja-JP)
slow_monumberNo0Slow down operations by specified milliseconds
record_video_dirstringNo-Directory to save recorded videos (enables Playwright video recording)

Output:

FieldTypeDescription
statusstringOperation status (success/error)
messagestringLaunch a new browser instance
browser_typestringType of browser launched
headlessbooleanWhether browser is running headless
viewportobjectCurrent viewport dimensions

Example: Example

yaml
headless: true

Example: Example

yaml
headless: false

browser.navigation

Navigate browser history (back, forward, reload)

Parameters:

NameTypeRequiredDefaultDescription
actionselect (back, forward, reload)YesreloadWhich navigation action to perform
wait_untilselect (load, domcontentloaded, networkidle)NodomcontentloadedWhen to consider navigation complete
timeout_msnumberNo30000Maximum time to wait in milliseconds

Output:

FieldTypeDescription
statusstringOperation status (success/error)
actionstringNavigation action performed
urlstringCurrent URL after navigation

Example: Example

yaml
action: back

Example: Example

yaml
action: forward

Example: Example

yaml
action: reload
wait_until: networkidle

Network Monitor

browser.network

Monitor and intercept network requests

Parameters:

NameTypeRequiredDefaultDescription
actionselect (monitor, block, intercept)Yes-Network action to perform
url_patternstringNo-Regex pattern to match request URLs
resource_typestringNo-Filter by resource type (document, script, image, etc)
timeoutnumberNo30000Maximum time to wait in milliseconds
mock_responseobjectNo-Response to return for intercepted requests

Output:

FieldTypeDescription
statusstringResponse to return for intercepted requests
requestsarrayResponse to return for intercepted requests
blocked_countnumberOperation status (success/error)

Example: Example

yaml
action: monitor
url_pattern: .*api.*
timeout: 10000

Example: Example

yaml
action: block
resource_type: image

Example: Example

yaml
action: intercept
url_pattern: .*users.*
mock_response: {"status": 200, "body": "{\"users\": []}"}

List Pages

browser.pages

List all open browser pages/tabs

Parameters:

NameTypeRequiredDefaultDescription
include_detailsbooleanNoTrueInclude detailed information for each page
include_content_infobooleanNoFalseInclude content type information for each page

Output:

FieldTypeDescription
statusstringOperation status (success/error)
pagesarrayList of open pages
countnumberNumber of open pages
current_indexnumberIndex of the current active page

Example: Example

yaml
include_details: true

Example: Example

yaml
include_details: false

Example: Example

yaml
include_details: true
include_content_info: true

Paginate & Extract

browser.pagination

Auto-paginate through pages and extract data

Parameters:

NameTypeRequiredDefaultDescription
modeselect (next_button, infinite_scroll, page_numbers, load_more)Nonext_buttonHow to navigate between pages
item_selectorstringYes-CSS selector for items to extract on each page
fieldsobjectNo-Field definitions {name: {selector, attribute?}}
next_selectorstringNo-CSS selector for next page button
load_more_selectorstringNo-CSS selector for load more button
max_pagesnumberNo10Maximum number of pages to process (0 = unlimited)
max_itemsnumberNo0Stop after collecting this many items (0 = unlimited)
wait_between_pages_msnumberNo1000Wait time between page navigations
wait_for_selectorstringNo-Wait for this element after page change
scroll_amountnumberNo1000Pixels to scroll for infinite scroll mode
no_more_indicatorstringNo-Selector that appears when no more pages (stops pagination)

Output:

FieldTypeDescription
itemsarraySelector that appears when no more pages (stops pagination)
total_itemsintegerAll extracted items from all pages
pages_processedintegerAll extracted items from all pages
stopped_reasonstringNumber of pages processed

Example: Example

yaml
mode: next_button
item_selector: .product-card
fields: {"title": {"selector": ".title"}, "price": {"selector": ".price"}, "link": {"selector": "a", "attribute": "href"}}
next_selector: .pagination .next
max_pages: 5

Example: Example

yaml
mode: infinite_scroll
item_selector: .feed-item
fields: {"content": {"selector": ".content"}, "author": {"selector": ".author"}}
max_items: 100
no_more_indicator: .end-of-feed

Example: Example

yaml
mode: load_more
item_selector: .list-item
load_more_selector: button.load-more
max_pages: 10

Generate PDF

browser.pdf

Generate PDF from current page

Parameters:

NameTypeRequiredDefaultDescription
pathstringNo-Path where the output file will be saved
page_sizeselect (A4, Letter, Legal, A3, A5)NoA4Page size format
orientationselect (portrait, landscape)NoportraitPage orientation
print_backgroundbooleanNoTrueInclude background graphics
scalenumberNo1Scale of the webpage rendering (0.1-2)
marginnumberNo20Page margin in millimeters
headerstringNo-Header text for each page
footerstringNo-Footer text for each page

Output:

FieldTypeDescription
statusstringScale of the webpage rendering (0.1-2)
pathstringOperation status (success/error)
sizenumberOperation status (success/error)

Example: Example

yaml
path: /output/page.pdf

Example: Example

yaml
path: /output/landscape.pdf
landscape: true

Example: Example

yaml
path: /output/custom.pdf
margin: {"top": "1cm", "bottom": "1cm", "left": "2cm", "right": "2cm"}

Performance Metrics

browser.performance

Collect browser performance metrics

Parameters:

NameTypeRequiredDefaultDescription
metricsarrayNo['all']Performance metrics to collect
timeout_msnumberNo3000Timeout in milliseconds
setup_observersbooleanNoTrueSet up performance observers before collecting

Output:

FieldTypeDescription
statusstringOperation status (success/error)
metricsobjectCollected performance metrics

Example: Example

yaml
metrics: ["all"]
timeout_ms: 5000

Example: Example

yaml
metrics: ["lcp", "fcp", "cls"]

Example: Example

yaml
metrics: ["ttfb", "domContentLoaded", "load"]
timeout_ms: 0

Press Key

browser.press

Press a keyboard key

Parameters:

NameTypeRequiredDefaultDescription
keystringYes-The key to press (e.g., Enter, Escape, Tab)

Output:

FieldTypeDescription
statusstringOperation status (success/error)
keystringPress a keyboard key

Example: Example

yaml
key: Enter

Example: Example

yaml
key: Escape

Record Actions

browser.record

Record user actions as workflow

Parameters:

NameTypeRequiredDefaultDescription
actionstringYes-Recording action to perform
output_formatstringNoyamlFormat for recorded workflow
output_pathstringNo-Path where the output file will be saved

Output:

FieldTypeDescription
statusstringFormat for recorded workflow
recordingarrayOperation status (success/error)
workflowstringOperation status (success/error)

Example: Example

yaml
action: start

Example: Example

yaml
action: stop
output_format: yaml

Example: Example

yaml
action: get

Release Browser

browser.release

Release browser session (close only if owned)

Parameters:

NameTypeRequiredDefaultDescription
forcebooleanNoFalseClose browser even if not owned by this template

Output:

FieldTypeDescription
statusstringClose browser even if not owned by this template
messagestringWhat action was taken
was_ownerbooleanWhat action was taken

Example: Example

yaml

Example: Example

yaml
force: true

Take Screenshot

browser.screenshot

Take a screenshot of the current page

Parameters:

NameTypeRequiredDefaultDescription
pathstringNoscreenshot.pngPath where the output file will be saved
full_pagebooleanNoFalseCapture the entire scrollable page
formatselect (png, jpeg, webp)NopngImage format for the screenshot
qualitynumberNo-Quality for JPEG/WebP format (0-100)

Output:

FieldTypeDescription
statusstringOperation status (success/error)
filepathstringTake a screenshot of the current page

Example: Example

yaml
path: output/page.png

Scroll Page

browser.scroll

Scroll page to element, position, or direction

Parameters:

NameTypeRequiredDefaultDescription
selectorstringNo-CSS selector, XPath, or text selector to find the element
directionselect (down, up, left, right)NodownDirection to scroll the page
amountnumberNo500Pixels to scroll (ignored if selector is provided)
behaviorselect (smooth, instant)NosmoothHow the scroll animation behaves

Output:

FieldTypeDescription
statusstringOperation status (success/error)
scrolled_toobjectOperation status (success/error)

Example: Example

yaml
selector: #footer

Example: Example

yaml
direction: down
amount: 500

Example: Example

yaml
direction: up
amount: 10000
behavior: smooth

Select Option

browser.select

Select option from dropdown element

Parameters:

NameTypeRequiredDefaultDescription
selectorstringYes-CSS selector, XPath, or text selector to find the element
valuestringNo-Option value attribute to select
labelstringNo-Option text content to select (alternative to value)
indexnumberNo-Option index to select (0-based)
timeoutnumberNo30000Maximum time to wait in milliseconds

Output:

FieldTypeDescription
statusstringOperation status (success/error)
selectedarrayOperation status (success/error)
selectorstringOperation status (success/error)

Example: Example

yaml
selector: select#country
value: us

Example: Example

yaml
selector: select#country
label: United States

Example: Example

yaml
selector: select#country
index: 2

DOM Snapshot

browser.snapshot

Capture DOM snapshot of the current page

Parameters:

NameTypeRequiredDefaultDescription
formatselect (html, mhtml, text)NohtmlOutput format (html or text)
selectorstringNo-CSS selector to snapshot a specific element
pathstringNo-Path to save the snapshot

Output:

FieldTypeDescription
statusstringOperation status (success/error)
formatstringFormat of the snapshot
contentstringSnapshot content
pathstringPath where snapshot was saved
size_bytesnumberSize of the snapshot in bytes

Example: Example

yaml
format: html

Example: Example

yaml
format: mhtml
path: /tmp/page.mhtml

Example: Example

yaml
format: text
selector: article.main-content

Example: Example

yaml
format: html
selector: #main
path: /tmp/section.html

Browser Storage

browser.storage

Access localStorage and sessionStorage

Parameters:

NameTypeRequiredDefaultDescription
actionselect (get, set, remove, clear, keys, length)Yes-Action to perform on the storage
typeselect (local, session)NolocalBrowser storage type to access
keystringNo-Storage key
valuestringNo-Value to store

Output:

FieldTypeDescription
statusstringOperation status (success/error)
valueanyOperation status (success/error)
keysarrayOperation status (success/error)
lengthnumberThe returned value

Example: Example

yaml
action: get
type: local
key: user_token

Example: Example

yaml
action: set
type: session
key: temp_data
value: {"id": 123}

Example: Example

yaml
action: clear
type: local

Example: Example

yaml
action: keys
type: local

Manage Tabs

browser.tab

Create, switch, and close browser tabs

Parameters:

NameTypeRequiredDefaultDescription
actionstringYes-Tab action to perform
urlstringNo-URL to navigate to
indexnumberNo-Tab index to switch to or close (0-based)

Output:

FieldTypeDescription
statusstringTab index to switch to or close (0-based)
tab_countnumberTab index to switch to or close (0-based)
current_indexnumberOperation status (success/error)
tabsarrayThe tab count

Example: Example

yaml
action: new
url: https://example.com

Example: Example

yaml
action: switch
index: 0

Example: Example

yaml
action: close

Example: Example

yaml
action: list

Browser Trace

browser.trace

Start, stop, or save browser performance traces

Parameters:

NameTypeRequiredDefaultDescription
actionstringYes-Trace action (start, stop, save)
categoriesarrayNo['devtools.timeline']Trace categories to capture
screenshotsbooleanNoTrueInclude screenshots in the trace
pathstringNo-Path to save the trace file

Output:

FieldTypeDescription
statusstringOperation status (success/error)
tracingbooleanWhether tracing is currently active
pathstringPath where trace was saved
size_bytesnumberSize of the trace file in bytes

Example: Example

yaml
action: start
screenshots: true

Example: Example

yaml
action: start
categories: ["devtools.timeline", "v8.execute"]
screenshots: false

Example: Example

yaml
action: stop
path: /tmp/performance-trace.json

Type Text

browser.type

Type text into an input field

Parameters:

NameTypeRequiredDefaultDescription
type_methodselect (placeholder, label, name, id, selector)NoplaceholderChoose the easiest way to identify the input field
targetstringNo-e.g. "Enter your email", "Email", "username"
selectorstringNo-CSS selector, XPath, or text selector
input_typeselect (text, password, email)NotextType of input field — use Password to mask the value in the builder
textstringYes-
sensitive_textstringYes-
delaynumberNo0Delay between keystrokes in milliseconds
clearbooleanNoFalseClear the input field before typing
timeoutnumberNo30000Maximum time to wait in milliseconds

Output:

FieldTypeDescription
browserobjectBrowser session (pass-through for chaining)
statusstringOperation status (success/error)
selectorstringType text into an input field
methodstringType method used

Example: Example

yaml
type_method: placeholder
target: Enter your email
text: user@example.com

Example: Example

yaml
type_method: label
target: Email
text: user@example.com

Example: Example

yaml
type_method: placeholder
target: Password
input_type: password
sensitive_text: ${env.LOGIN_PASSWORD}

Example: Example

yaml
type_method: selector
selector: #email
text: user@example.com

Upload File

browser.upload

Upload file to file input element

Parameters:

NameTypeRequiredDefaultDescription
selectorstringYes-CSS selector, XPath, or text selector to find the element
file_pathstringYes-Local path to the file to upload
timeout_msnumberNo30000Maximum time to wait in milliseconds

Output:

FieldTypeDescription
statusstringOperation status (success/error)
filenamestringOperation status (success/error)
sizenumberOperation status (success/error)
selectorstringName of the file

Example: Example

yaml
selector: input[type="file"]
file_path: /path/to/image.png

Example: Example

yaml
selector: #file-upload
file_path: /path/to/document.pdf

Set Viewport

browser.viewport

Get or set the browser viewport size

Parameters:

NameTypeRequiredDefaultDescription
widthnumberYes1280Viewport width in pixels
heightnumberYes720Viewport height in pixels

Output:

FieldTypeDescription
statusstringOperation status (success/error)
viewportobjectCurrent viewport dimensions
previous_viewportobjectPrevious viewport dimensions

Example: Example

yaml
width: 375
height: 667

Example: Example

yaml
width: 768
height: 1024

Example: Example

yaml
width: 1920
height: 1080

Example: Example

yaml
width: 1366
height: 768

Wait

browser.wait

Wait for a duration or until an element appears

Parameters:

NameTypeRequiredDefaultDescription
duration_msnumberNo1000Duration of the operation in milliseconds
selectorstringNo-CSS selector, XPath, or text selector to find the element
stateselect (visible, hidden, attached, detached)NovisibleState to wait for (visible, hidden, attached, detached)
timeout_msnumberNo30000Maximum time to wait in milliseconds

Output:

FieldTypeDescription
statusstringOperation status (success/error)
selectorstringOperation status (success/error)
duration_msnumberWait for a duration or element to appear

Example: Example

yaml
duration_ms: 2000

Example: Example

yaml
selector: #loading-complete
timeout_ms: 5000

Released under the Apache 2.0 License.