Interaction
brow click
Section titled “brow click”Click an element.
brow click -s <id> [<selector>] [--ref <n>] [--timeout <ms>] [--retry <n>] [--no-wait]| Argument/Flag | Default | Description |
|---|---|---|
<selector> |
— | Playwright selector (CSS, text=, role=) |
--ref |
— | Element ref number from snapshot |
--timeout |
30000 |
Timeout in milliseconds |
--retry |
0 |
Retry attempts (1-second delay each) |
--no-wait |
false |
Skip waiting for element to be visible |
brow click -s 1 "text=Sign In"brow click -s 1 "button[type=submit]"brow click -s 1 --ref 5 # use ref from snapshotAfter clicking, the command returns the updated snapshot.
brow click-until
Section titled “brow click-until”Repeat a click until a selector clears (or work runs out) — “load more” pagination, batch-dismiss actions, draining a queue. One call instead of a shell loop guessing when to stop.
brow click-until -s <id> <selector> [--until-gone <selector>] [--max-iterations <n>]| Argument/Flag | Default | Description |
|---|---|---|
<selector> |
— | Element to click repeatedly |
--until-gone |
— | Stop once this selector has no matches left |
--max-iterations |
25 |
Safety cap on clicks |
brow click-until -s 1 "button.load-more" --until-gone "button.load-more"# Clicked 4 time(s)Always check why it stopped — hitting the cap looks identical to “nothing left to click” unless you read the reason, which goes to stderr:
brow click-until -s 1 "button.next" --until-gone ".row" --max-iterations 3# stderr: hit max_iterations (3) — work may remain, re-run to continuebrow fill
Section titled “brow fill”Fill an input field with a value.
brow fill -s <id> [<selector>] <value> [--ref <n>] [--timeout <ms>] [--retry <n>] [--no-wait]brow fill -s 1 "#email" "user@example.com"brow fill -s 1 --ref 3 "search query" # fill by refIf only one argument is passed, it’s treated as the value (use --ref to identify the field).
brow select
Section titled “brow select”Select an option in a <select> element.
brow select -s <id> [<selector>] <value> [--ref <n>] [--timeout <ms>]brow select -s 1 "#country" "Slovakia"brow select -s 1 --ref 8 "en"The <value> matches the option’s value attribute or visible text.
brow type
Section titled “brow type”Type text at the current cursor position (keyboard simulation).
brow type -s <id> <text>brow type -s 1 "Hello, world"Unlike fill, type dispatches real keyboard events — use it when a form field requires keystroke events (e.g. autocomplete inputs).
brow key
Section titled “brow key”Press a keyboard key or key combination.
brow key -s <id> <key>Common keys: Enter, Tab, Escape, Space, PageDown, PageUp, End, Home, ArrowUp, ArrowDown.
Key combos use +: Meta+a, Control+c, Shift+Enter.
brow key -s 1 Enterbrow key -s 1 Tabbrow key -s 1 Meta+abrow hover
Section titled “brow hover”Hover over an element (triggers :hover CSS and mouseover events).
brow hover -s <id> <selector> [--timeout <ms>]brow hover -s 1 "nav .dropdown"brow scroll
Section titled “brow scroll”Scroll the page by a number of pixels.
brow scroll -s <id> <pixels>brow scroll -s 1 1000 # scroll down 1000pxbrow scroll -s 1 -500 # scroll up 500px!!! note “Scroll limitations”
scroll only works on the outermost page. It has no effect inside iframes or fixed-height containers. For those, use keyboard navigation:
```bashbrow click -s 1 "text=Section" # focus the containerbrow key -s 1 PageDown # scroll downbrow key -s 1 End # jump to bottom```brow scroll-to
Section titled “brow scroll-to”Scroll an element into view.
brow scroll-to -s <id> <selector>brow scroll-to -s 1 "#footer"brow drag
Section titled “brow drag”Drag from one element to another.
brow drag -s <id> <source-selector> <target-selector>brow drag -s 1 ".task-card" ".done-column"brow upload
Section titled “brow upload”Upload a file via a file input element.
brow upload -s <id> <selector> <filepath>brow upload -s 1 "input[type='file']" "/path/to/document.pdf"!!! warning “Use CSS selectors”
Numeric snapshot refs ([3]) return a 500 error for upload. Always use a CSS selector like input[type='file'].