CLI Reference¶
The w3pilot CLI provides command-line browser automation.
Installation¶
Global Flags¶
| Flag | Description |
|---|---|
--session |
Session file path (default: ~/.w3pilot/session.json) |
-o, --format |
Output format: text or json |
-v, --verbose |
Verbose output |
Commands¶
browser launch¶
Launch a browser instance.
Flags:
| Flag | Description |
|---|---|
--headless |
Run in headless mode |
Example:
browser quit¶
Close the browser.
page navigate¶
Navigate to a URL.
Flags:
| Flag | Description |
|---|---|
--timeout |
Navigation timeout (default: 30s) |
Example:
element click¶
Click an element.
Flags:
| Flag | Description |
|---|---|
--timeout |
Timeout (default: 10s) |
Example:
element type¶
Type text into an element (appends).
Example:
element fill¶
Fill an input (replaces existing content).
Example:
page screenshot¶
Capture a screenshot.
Flags:
| Flag | Description |
|---|---|
--selector |
Capture specific element |
--timeout |
Timeout (default: 30s) |
Example:
js eval¶
Execute JavaScript.
Example:
mcp¶
Start MCP server.
Flags:
| Flag | Description |
|---|---|
--headless |
Run headless |
--timeout |
Default timeout |
--project |
Project name for reports |
--list-tools |
List all tools as JSON |
run¶
Run a YAML/JSON script.
Flags:
| Flag | Description |
|---|---|
--headless |
Run headless |
--timeout |
Total script timeout |
Example:
test commands¶
Assertions and verifications for testing.
# Assertions
w3pilot test assert-text "Welcome"
w3pilot test assert-element "#login"
w3pilot test assert-url "**/dashboard"
# Verifications
w3pilot test verify-value "#email" "user@example.com"
w3pilot test verify-text ".heading" "Welcome"
w3pilot test verify-visible "#modal"
w3pilot test verify-enabled "#submit"
w3pilot test verify-checked "#agree"
# Locator generation
w3pilot test generate-locator "#submit" --strategy xpath
state commands¶
Named state snapshots for saving/restoring browser state.
# Save current state
w3pilot state save login-session
# List saved states
w3pilot state list
# Load a state
w3pilot state load login-session
# Delete a state
w3pilot state delete login-session
page inspect¶
Discover interactive elements on the page.
Flags:
| Flag | Description |
|---|---|
--type |
Element types: buttons, links, inputs, selects, headings, images |
Example:
Session Management¶
The CLI maintains session state in ~/.w3pilot/session.json. This allows running commands across multiple invocations:
w3pilot browser launch
w3pilot page navigate https://example.com
# ... later ...
w3pilot page screenshot result.png
w3pilot browser quit
Examples¶
Login Flow¶
w3pilot browser launch --headless
w3pilot page navigate https://example.com/login
w3pilot element fill "#email" "user@example.com"
w3pilot element fill "#password" "secret123"
w3pilot element click "#submit"
w3pilot page screenshot dashboard.png
w3pilot browser quit
Form Automation¶
w3pilot browser launch
w3pilot page navigate https://example.com/form
w3pilot element fill "#name" "John Doe"
w3pilot element fill "#email" "john@example.com"
w3pilot element click "input[type='checkbox']"
w3pilot element click "#submit"
w3pilot browser quit
State Management¶
# First session: login and save state
w3pilot browser launch
w3pilot page navigate https://example.com/login
w3pilot element fill "#email" "user@example.com"
w3pilot element fill "#password" "secret123"
w3pilot element click "#submit"
w3pilot state save logged-in
w3pilot browser quit
# Later session: restore state
w3pilot browser launch
w3pilot state load logged-in
w3pilot page navigate https://example.com/dashboard
# Already logged in!