mirror of
https://github.com/browser-use/browser-use
synced 2026-05-06 17:52:15 +02:00
123 lines
7.0 KiB
Plaintext
123 lines
7.0 KiB
Plaintext
---
|
|
title: "All Parameters"
|
|
description: "Complete reference for all browser configuration options"
|
|
icon: "sliders"
|
|
mode: "wide"
|
|
---
|
|
|
|
<Note>
|
|
The `Browser` instance also provides all [Actor](/customize/actor/all-parameters) methods for direct browser control (page management, element interactions, etc.).
|
|
</Note>
|
|
|
|
## Core Settings
|
|
|
|
- `cdp_url`: CDP URL for connecting to existing browser instance (e.g., `"http://localhost:9222"`)
|
|
|
|
## Display & Appearance
|
|
|
|
- `headless` (default: `None`): Run browser without UI. Auto-detects based on display availability (`True`/`False`/`None`)
|
|
- `window_size`: Browser window size for headful mode. Use dict `{'width': 1920, 'height': 1080}` or `ViewportSize` object
|
|
- `window_position` (default: `{'width': 0, 'height': 0}`): Window position from top-left corner in pixels
|
|
- `viewport`: Content area size, same format as `window_size`. Use `{'width': 1280, 'height': 720}` or `ViewportSize` object
|
|
- `no_viewport` (default: `None`): Disable viewport emulation, content fits to window size
|
|
- `device_scale_factor`: Device scale factor (DPI). Set to `2.0` or `3.0` for high-resolution screenshots
|
|
|
|
## Browser Behavior
|
|
|
|
- `keep_alive` (default: `None`): Keep browser running after agent completes
|
|
- `allowed_domains`: Restrict navigation to specific domains. Domain pattern formats:
|
|
- `'example.com'` - Matches only `https://example.com/*`
|
|
- `'*.example.com'` - Matches `https://example.com/*` and any subdomain `https://*.example.com/*`
|
|
- `'http*://example.com'` - Matches both `http://` and `https://` protocols
|
|
- `'chrome-extension://*'` - Matches any Chrome extension URL
|
|
- **Security**: Wildcards in TLD (e.g., `example.*`) are **not allowed** for security
|
|
- Use list like `['*.google.com', 'https://example.com', 'chrome-extension://*']`
|
|
- **Performance**: Lists with 100+ domains are automatically optimized to sets for O(1) lookup. Pattern matching is disabled for optimized lists. Both `www.example.com` and `example.com` variants are checked automatically.
|
|
- `prohibited_domains`: Block navigation to specific domains. Uses same pattern formats as `allowed_domains`. When both `allowed_domains` and `prohibited_domains` are set, `allowed_domains` takes precedence. Examples:
|
|
- `['pornhub.com', '*.gambling-site.net']` - Block specific sites and all subdomains
|
|
- `['https://explicit-content.org']` - Block specific protocol/domain combination
|
|
- **Performance**: Lists with 100+ domains are automatically optimized to sets for O(1) lookup (same as `allowed_domains`)
|
|
- `enable_default_extensions` (default: `True`): Load automation extensions (uBlock Origin, cookie handlers, ClearURLs)
|
|
- `cross_origin_iframes` (default: `False`): Enable cross-origin iframe support (may cause complexity)
|
|
- `is_local` (default: `True`): Whether this is a local browser instance. Set to `False` for remote browsers. If we have a `executable_path` set, it will be automatically set to `True`. This can effect your download behavior.
|
|
|
|
## User Data & Profiles
|
|
|
|
- `user_data_dir` (default: auto-generated temp): Directory for browser profile data. Use `None` for incognito mode
|
|
- `profile_directory` (default: `'Default'`): Chrome profile subdirectory name (`'Profile 1'`, `'Work Profile'`, etc.)
|
|
- `storage_state`: Browser storage state (cookies, localStorage). Can be file path string or dict object
|
|
|
|
## Network & Security
|
|
|
|
- `proxy`: Proxy configuration using `ProxySettings(server='http://host:8080', bypass='localhost,127.0.0.1', username='user', password='pass')`
|
|
- `permissions` (default: `['clipboardReadWrite', 'notifications']`): Browser permissions to grant. Use list like `['camera', 'microphone', 'geolocation']`
|
|
|
|
- `headers`: Additional HTTP headers for connect requests (remote browsers only)
|
|
|
|
## Browser Launch
|
|
|
|
- `executable_path`: Path to browser executable for custom installations. Platform examples:
|
|
- macOS: `'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'`
|
|
- Windows: `'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe'`
|
|
- Linux: `'/usr/bin/google-chrome'`
|
|
- `channel`: Browser channel (`'chromium'`, `'chrome'`, `'chrome-beta'`, `'msedge'`, etc.)
|
|
- `args`: Additional command-line arguments for the browser. Use list format: `['--disable-gpu', '--custom-flag=value', '--another-flag']`
|
|
- `env`: Environment variables for browser process. Use dict like `{'DISPLAY': ':0', 'LANG': 'en_US.UTF-8', 'CUSTOM_VAR': 'test'}`
|
|
- `chromium_sandbox` (default: `True` except in Docker): Enable Chromium sandboxing for security
|
|
- `devtools` (default: `False`): Open DevTools panel automatically (requires `headless=False`)
|
|
- `ignore_default_args`: List of default args to disable, or `True` to disable all. Use list like `['--enable-automation', '--disable-extensions']`
|
|
|
|
## Timing & Performance
|
|
|
|
- `minimum_wait_page_load_time` (default: `0.25`): Minimum time to wait before capturing page state in seconds
|
|
- `wait_for_network_idle_page_load_time` (default: `0.5`): Time to wait for network activity to cease in seconds
|
|
- `wait_between_actions` (default: `0.5`): Time to wait between agent actions in seconds
|
|
|
|
## AI Integration
|
|
|
|
- `highlight_elements` (default: `True`): Highlight interactive elements for AI vision
|
|
- `paint_order_filtering` (default: `True`): Enable paint order filtering to optimize DOM tree by removing elements hidden behind others. Slightly experimental
|
|
|
|
## Downloads & Files
|
|
|
|
- `accept_downloads` (default: `True`): Automatically accept all downloads
|
|
- `downloads_path`: Directory for downloaded files. Use string like `'./downloads'` or `Path` object
|
|
- `auto_download_pdfs` (default: `True`): Automatically download PDFs instead of viewing in browser
|
|
|
|
## Device Emulation
|
|
|
|
- `user_agent`: Custom user agent string. Example: `'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X)'`
|
|
- `screen`: Screen size information, same format as `window_size`
|
|
|
|
## Recording & Debugging
|
|
|
|
- `record_video_dir`: Directory to save video recordings as `.mp4` files
|
|
- `record_video_size` (default: `ViewportSize`): The frame size (width, height) of the video recording.
|
|
- `record_video_framerate` (default: `30`): The framerate to use for the video recording.
|
|
- `record_har_path`: Path to save network trace files as `.har` format
|
|
- `traces_dir`: Directory to save complete trace files for debugging
|
|
- `record_har_content` (default: `'embed'`): HAR content mode (`'omit'`, `'embed'`, `'attach'`)
|
|
- `record_har_mode` (default: `'full'`): HAR recording mode (`'full'`, `'minimal'`)
|
|
|
|
## Advanced Options
|
|
|
|
- `disable_security` (default: `False`): ⚠️ **NOT RECOMMENDED** - Disables all browser security features
|
|
- `deterministic_rendering` (default: `False`): ⚠️ **NOT RECOMMENDED** - Forces consistent rendering but reduces performance
|
|
|
|
---
|
|
|
|
## Outdated BrowserProfile
|
|
|
|
For backward compatibility, you can pass all the parameters from above to the `BrowserProfile` and then to the `Browser`.
|
|
|
|
```python
|
|
from browser_use import BrowserProfile
|
|
profile = BrowserProfile(headless=False)
|
|
browser = Browser(browser_profile=profile)
|
|
```
|
|
|
|
## Browser vs BrowserSession
|
|
|
|
`Browser` is an alias for `BrowserSession` - they are exactly the same class:
|
|
Use `Browser` for cleaner, more intuitive code.
|