mirror of
https://github.com/browser-use/browser-use.git
synced 2026-09-14 19:59:47 +08:00
96f39b3c75
Relocate deprecated doc sections from customize/ to legacy/ under Customize OS nav. Add redirects for all old paths and update cross-references in AGENTS.md and related mdx files. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
192 lines
8.8 KiB
Plaintext
192 lines
8.8 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](/legacy/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
|
|
|
|
<Warning>
|
|
Video recording requires additional optional dependencies. If these are not installed, no video will be saved and no error will be raised.
|
|
|
|
Install with:
|
|
```bash
|
|
pip install "browser-use[video]"
|
|
```
|
|
or:
|
|
```bash
|
|
pip install imageio[ffmpeg] numpy
|
|
```
|
|
</Warning>
|
|
|
|
- `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.
|
|
|
|
---
|
|
|
|
## Class Methods
|
|
|
|
### `Browser.from_system_chrome()`
|
|
|
|
Creates a Browser instance using your system's Chrome installation and profile. Automatically detects Chrome executable and user data directory for your platform.
|
|
|
|
```python
|
|
from browser_use import Browser
|
|
|
|
# Auto-select first available profile
|
|
browser = Browser.from_system_chrome()
|
|
|
|
# Or specify a profile
|
|
browser = Browser.from_system_chrome(profile_directory='Profile 1')
|
|
```
|
|
|
|
**Parameters:**
|
|
- `profile_directory` (default: `None`): Chrome profile to use (`'Default'`, `'Profile 1'`, etc.). If `None`, auto-selects the first available profile.
|
|
- `**kwargs`: Additional arguments passed to `Browser()` constructor (e.g., `headless=False`)
|
|
|
|
**Returns:** `Browser` instance configured to use your system Chrome
|
|
|
|
**Raises:** `RuntimeError` if Chrome is not found on your system
|
|
|
|
**Note:** You may need to fully close Chrome before using this, so Chrome profiles aren't used by multiple instances simultaneously.
|
|
|
|
---
|
|
|
|
### `Browser.list_chrome_profiles()`
|
|
|
|
Lists available Chrome profiles on the system.
|
|
|
|
```python
|
|
from browser_use import Browser
|
|
|
|
profiles = Browser.list_chrome_profiles()
|
|
for p in profiles:
|
|
print(f"{p['directory']}: {p['name']}")
|
|
# Output:
|
|
# Profile 1: Work
|
|
# Profile 5: Personal
|
|
```
|
|
|
|
**Returns:** List of dicts with `'directory'` and `'name'` keys
|
|
|
|
**Example return value:**
|
|
```python
|
|
[
|
|
{'directory': 'Default', 'name': 'Person 1'},
|
|
{'directory': 'Profile 1', 'name': 'Work'},
|
|
{'directory': 'Profile 5', 'name': 'Personal'}
|
|
]
|
|
```
|