17 KiB
Complete Tool Reference
Alphabetical listing of all 26 chrome-devtools tools with full parameters and examples.
Table of Contents
- click
- close_page
- drag
- emulate
- evaluate_script
- fill
- fill_form
- get_console_message
- get_network_request
- handle_dialog
- hover
- list_console_messages
- list_network_requests
- list_pages
- navigate_page
- new_page
- performance_analyze_insight
- performance_start_trace
- performance_stop_trace
- press_key
- resize_page
- select_page
- take_screenshot
- take_snapshot
- upload_file
- wait_for
click
Clicks on an element identified by its UID.
Group: Element Interaction
Required Parameters:
--uid UID- Element unique identifier from snapshot
Optional Parameters:
--dblClick BOOLEAN- Double click instead of single click (default: false)
Examples:
# Single click
node scripts/click.js --uid button_submit_abc123
# Double click
node scripts/click.js --uid file_icon_xyz789 --dblClick true
Related Tools: hover, fill, take_snapshot
close_page
Closes a page by its index. Cannot close the last remaining page.
Group: Page Management
Required Parameters:
--pageIdx NUMBER- Index of page to close (from list_pages)
Examples:
node scripts/close_page.js --pageIdx 2
Notes: Always keep at least one page open. Close pages from highest to lowest index to avoid index shifting.
Related Tools: list_pages, new_page, select_page
drag
Drags one element onto another element.
Group: Element Interaction
Required Parameters:
--from-uid UID- UID of element to drag--to-uid UID- UID of target drop zone
Examples:
node scripts/drag.js --from-uid task_item_abc --to-uid dropzone_xyz
Related Tools: hover, click, take_snapshot
emulate
Emulates network conditions and CPU throttling.
Group: Performance Analysis
Optional Parameters:
--networkConditions JSON- Network throttling config--cpuThrottlingRate NUMBER- CPU throttling multiplier (1 = normal)
Network Conditions Format:
{
"downloadThroughput": 50000,
"uploadThroughput": 50000,
"latency": 2000
}
Examples:
# Slow 3G
node scripts/emulate.js --networkConditions '{"downloadThroughput":50000,"uploadThroughput":50000,"latency":2000}'
# 4x CPU slowdown
node scripts/emulate.js --cpuThrottlingRate 4
# Combined
node scripts/emulate.js --networkConditions '{"downloadThroughput":100000,"uploadThroughput":50000,"latency":100}' --cpuThrottlingRate 2
# Reset to normal
node scripts/emulate.js --cpuThrottlingRate 1
Common Presets:
- Slow 3G: 50KB/s down, 50KB/s up, 2000ms latency
- Fast 3G: 180KB/s down, 84KB/s up, 562ms latency
- 4G: 1.6MB/s down, 750KB/s up, 150ms latency
Related Tools: performance_start_trace, performance_stop_trace
evaluate_script
Executes JavaScript in the page context and returns JSON-serializable results.
Group: Performance Analysis
Required Parameters:
--function STRING- JavaScript function as string
Optional Parameters:
--args JSON_ARRAY- Function arguments as JSON array
Examples:
# Simple extraction
node scripts/evaluate_script.js --function "() => document.title"
# With parameters
node scripts/evaluate_script.js --function "(x, y) => x + y" --args '[5, 3]'
# Extract array of data
node scripts/evaluate_script.js --function "() => Array.from(document.querySelectorAll('h2')).map(h => h.textContent)"
# Complex object extraction
node scripts/evaluate_script.js --function "() => ({title: document.title, links: document.querySelectorAll('a').length})"
Important: Return values must be JSON-serializable (no DOM nodes, functions, or circular references).
Related Tools: take_snapshot, wait_for
fill
Types text into inputs/textareas or selects dropdown options.
Group: Element Interaction
Required Parameters:
--uid UID- Element unique identifier--value STRING- Text to type or option to select
Examples:
# Text input
node scripts/fill.js --uid input_username_abc --value "john.doe"
# Textarea
node scripts/fill.js --uid textarea_comment_def --value "This is a long comment"
# Dropdown select
node scripts/fill.js --uid select_country_ghi --value "United States"
Related Tools: fill_form, click, take_snapshot
fill_form
Fills multiple form fields at once.
Group: Element Interaction
Required Parameters:
--elements JSON_ARRAY- Array of {uid, value} objects
Format:
[
{"uid": "input_email", "value": "test@example.com"},
{"uid": "input_password", "value": "secret123"}
]
Examples:
node scripts/fill_form.js --elements '[{"uid":"input_email","value":"test@example.com"},{"uid":"input_password","value":"secret123"}]'
# Multi-line for readability (bash)
node scripts/fill_form.js --elements '[
{"uid":"input_name","value":"John Doe"},
{"uid":"input_email","value":"john@example.com"},
{"uid":"select_country","value":"USA"}
]'
Related Tools: fill, click, take_snapshot
get_console_message
Retrieves a specific console message by ID.
Group: Inspection & Debugging
Required Parameters:
--msgid STRING- Message ID from list_console_messages
Examples:
node scripts/get_console_message.js --msgid msg_abc123
Related Tools: list_console_messages
get_network_request
Gets details of a specific network request.
Group: Inspection & Debugging
Optional Parameters:
--reqid STRING- Request ID from list_network_requests (if omitted, returns currently selected request in DevTools)
Examples:
# Specific request
node scripts/get_network_request.js --reqid req_abc123
# Currently selected in DevTools
node scripts/get_network_request.js
Output includes: URL, method, status code, headers, request/response body, timing.
Related Tools: list_network_requests
handle_dialog
Handles browser dialogs (alert, confirm, prompt).
Group: Performance Analysis
Required Parameters:
--action STRING- Either "accept" or "dismiss"
Optional Parameters:
--promptText STRING- Text to enter in prompt dialog (only for prompts)
Examples:
# Accept alert
node scripts/handle_dialog.js --action accept
# Dismiss confirm
node scripts/handle_dialog.js --action dismiss
# Accept prompt with input
node scripts/handle_dialog.js --action accept --promptText "My Answer"
Notes: Dialog must already be open when calling this tool.
Related Tools: click, wait_for
hover
Hovers the mouse over an element.
Group: Element Interaction
Required Parameters:
--uid UID- Element unique identifier
Examples:
node scripts/hover.js --uid tooltip_trigger_abc
# Common pattern: hover then click
node scripts/hover.js --uid menu_trigger_xyz
node scripts/click.js --uid menu_item_settings
Use Cases: Triggering tooltips, dropdown menus, hover effects.
Related Tools: click, take_snapshot
list_console_messages
Lists console messages (logs, warnings, errors) from the current page.
Group: Inspection & Debugging
Optional Parameters:
--pageSize NUMBER- Number of messages per page--pageIdx NUMBER- Page index for pagination (0-based)--types STRING- Comma-separated types: log,warn,error,info--includePreservedMessages BOOLEAN- Include messages from before current navigation
Examples:
# All messages
node scripts/list_console_messages.js
# Only errors
node scripts/list_console_messages.js --types error
# Errors and warnings
node scripts/list_console_messages.js --types error,warn
# Paginated
node scripts/list_console_messages.js --pageSize 10 --pageIdx 0
Related Tools: get_console_message
list_network_requests
Lists network requests made by the current page.
Group: Inspection & Debugging
Optional Parameters:
--pageSize NUMBER- Number of requests per page--pageIdx NUMBER- Page index for pagination (0-based)--resourceTypes STRING- Comma-separated types: fetch,xhr,document,script,stylesheet,image--includePreservedRequests BOOLEAN- Include requests from before current navigation
Examples:
# All requests
node scripts/list_network_requests.js
# Only API calls
node scripts/list_network_requests.js --resourceTypes fetch,xhr
# Only scripts and stylesheets
node scripts/list_network_requests.js --resourceTypes script,stylesheet
# Paginated
node scripts/list_network_requests.js --pageSize 20 --pageIdx 0
Related Tools: get_network_request
list_pages
Lists all open browser pages with their indices and URLs.
Group: Page Management
No Parameters
Examples:
node scripts/list_pages.js
Output Example:
Page 0: https://example.com (selected)
Page 1: https://google.com
Page 2: https://github.com
Related Tools: new_page, select_page, close_page
navigate_page
Navigates the currently selected page.
Group: Page Management
Optional Parameters:
--url STRING- URL to navigate to--type STRING- Navigation type: navigate, reload, back, forward--ignoreCache BOOLEAN- Bypass cache on reload--timeout NUMBER- Navigation timeout in milliseconds
Examples:
# Navigate to URL
node scripts/navigate_page.js --url https://example.com/page2
# Reload page
node scripts/navigate_page.js --type reload
# Reload ignoring cache
node scripts/navigate_page.js --type reload --ignoreCache true
# Go back
node scripts/navigate_page.js --type back
# Go forward
node scripts/navigate_page.js --type forward
Related Tools: new_page, wait_for
new_page
Creates a new browser page (tab).
Group: Page Management
Required Parameters:
--url STRING- URL to open
Optional Parameters:
--timeout NUMBER- Page load timeout in milliseconds (default: 30000)
Examples:
node scripts/new_page.js --url https://example.com
# With longer timeout
node scripts/new_page.js --url https://slow-site.com --timeout 60000
Notes: New page becomes the selected page automatically.
Related Tools: list_pages, select_page, close_page
performance_analyze_insight
Gets detailed information about a specific performance insight.
Group: Performance Analysis
Required Parameters:
--insightSetId STRING- Insight set ID from performance trace--insightName STRING- Name of specific insight to analyze
Examples:
node scripts/performance_analyze_insight.js --insightSetId set_abc123 --insightName LargestContentfulPaint
node scripts/performance_analyze_insight.js --insightSetId set_abc123 --insightName CumulativeLayoutShift
Common Insight Names:
- LargestContentfulPaint
- FirstContentfulPaint
- CumulativeLayoutShift
- TotalBlockingTime
- TimeToInteractive
Related Tools: performance_start_trace, performance_stop_trace
performance_start_trace
Starts performance trace recording.
Group: Performance Analysis
Required Parameters:
--reload BOOLEAN- Reload page before tracing--autoStop BOOLEAN- Automatically stop when page loads
Examples:
# Start with page reload
node scripts/performance_start_trace.js --reload true --autoStop false
# Start without reload
node scripts/performance_start_trace.js --reload false --autoStop true
Notes: Only one trace can be active at a time. Call performance_stop_trace to get results.
Related Tools: performance_stop_trace, performance_analyze_insight
performance_stop_trace
Stops the active performance trace and returns results.
Group: Performance Analysis
No Parameters
Examples:
node scripts/performance_stop_trace.js
Output includes:
- Core Web Vitals scores (LCP, FID, CLS)
- Performance insights
- Insight set IDs for detailed analysis
- Timing metrics
Related Tools: performance_start_trace, performance_analyze_insight
press_key
Presses a key or key combination.
Group: Element Interaction
Required Parameters:
--key STRING- Key or key combination to press
Examples:
# Single key
node scripts/press_key.js --key Enter
node scripts/press_key.js --key Tab
node scripts/press_key.js --key Escape
# Arrow keys
node scripts/press_key.js --key ArrowDown
node scripts/press_key.js --key ArrowUp
# Key combinations (use + separator)
node scripts/press_key.js --key "Control+S"
node scripts/press_key.js --key "Control+Shift+P"
node scripts/press_key.js --key "Alt+F4"
Common Keys: Enter, Tab, Escape, Space, Backspace, Delete, ArrowUp, ArrowDown, ArrowLeft, ArrowRight
Modifiers: Control, Shift, Alt, Meta (Command on Mac)
Related Tools: fill, click
resize_page
Resizes the browser window to specific dimensions.
Group: Page Management
Required Parameters:
--width NUMBER- Width in pixels--height NUMBER- Height in pixels
Examples:
# Desktop
node scripts/resize_page.js --width 1920 --height 1080
# Laptop
node scripts/resize_page.js --width 1366 --height 768
# Tablet
node scripts/resize_page.js --width 768 --height 1024
# Mobile
node scripts/resize_page.js --width 375 --height 667
Common Dimensions:
- Desktop: 1920x1080, 1440x900, 1366x768
- Tablet: 768x1024 (iPad), 600x960
- Mobile: 375x667 (iPhone), 360x640 (Android)
Related Tools: take_screenshot, emulate
select_page
Switches the active context to a specific page.
Group: Page Management
Required Parameters:
--pageIdx NUMBER- Page index from list_pages
Examples:
node scripts/select_page.js --pageIdx 0
node scripts/select_page.js --pageIdx 2
Notes: All subsequent commands operate on the selected page.
Related Tools: list_pages, new_page
take_screenshot
Captures a visual screenshot of the page or element.
Group: Inspection & Debugging
Optional Parameters:
--format STRING- Image format: png or jpeg (default: png)--quality NUMBER- JPEG quality 0-100 (default: 90)--uid STRING- Element UID to screenshot (if omitted, screenshots viewport)--fullPage BOOLEAN- Capture full scrollable page (default: false)--filePath STRING- Path to save image file
Examples:
# Full page PNG
node scripts/take_screenshot.js --fullPage true --filePath page.png
# Viewport only
node scripts/take_screenshot.js --filePath viewport.png
# Specific element
node scripts/take_screenshot.js --uid element_abc123 --filePath element.png
# Compressed JPEG
node scripts/take_screenshot.js --format jpeg --quality 80 --filePath page.jpg
Related Tools: take_snapshot
take_snapshot
Captures text-based page structure with element UIDs.
Group: Inspection & Debugging
Optional Parameters:
--verbose BOOLEAN- Include more details (default: false)--filePath STRING- Path to save snapshot file
Examples:
# Console output
node scripts/take_snapshot.js
# Verbose mode
node scripts/take_snapshot.js --verbose true
# Save to file
node scripts/take_snapshot.js --filePath snapshot.txt
# Both
node scripts/take_snapshot.js --verbose true --filePath detailed_snapshot.txt
Output Format:
Page: https://example.com
Title: Example Domain
button "Submit" [uid: button_submit_abc123]
input "Email" [uid: input_email_def456]
link "About" [uid: link_about_ghi789]
Important: Always use UIDs from the most recent snapshot. UIDs regenerate on each snapshot.
Related Tools: click, fill, hover, drag, take_screenshot
upload_file
Uploads a file through a file input element.
Group: Element Interaction
Required Parameters:
--uid UID- File input element UID--filePath STRING- Absolute path to file to upload
Examples:
# Upload document
node scripts/upload_file.js --uid input_file_abc --filePath /Users/username/documents/resume.pdf
# Upload image
node scripts/upload_file.js --uid input_avatar_xyz --filePath /Users/username/pictures/profile.jpg
Notes:
- Use absolute paths (not relative)
- Use forward slashes in paths
- Verify file exists before upload
Related Tools: click, fill, wait_for
wait_for
Waits for specific text to appear on the page.
Group: Performance Analysis
Required Parameters:
--text STRING- Text to wait for (exact match)
Optional Parameters:
--timeout NUMBER- Maximum wait time in milliseconds (default: 30000)
Examples:
# Wait up to 30 seconds (default)
node scripts/wait_for.js --text "Loading complete"
# Wait up to 10 seconds
node scripts/wait_for.js --text "Welcome" --timeout 10000
# Wait for error message
node scripts/wait_for.js --text "Error occurred" --timeout 5000
Notes:
- Text match is exact (case-sensitive)
- Times out if text doesn't appear within timeout period
- Use after navigation, clicks, or any action that triggers loading
Related Tools: click, navigate_page, take_snapshot