{"owner":"autoscrape-labs","repo":"pydoll","hasSkills":true,"totalSkillsCount":30,"totalTokensCount":20465,"categories":["command-prompt"],"hasMcp":false,"mcpConfig":null,"found":["docs/en/api/commands/browser.md","docs/en/api/commands/dom.md","docs/en/api/commands/fetch.md","docs/en/api/commands/index.md","docs/en/api/commands/input.md","docs/en/api/commands/network.md","docs/en/api/commands/page.md","docs/en/api/commands/runtime.md","docs/en/api/commands/storage.md","docs/en/api/commands/target.md","docs/pt/api/commands/browser.md","docs/pt/api/commands/dom.md","docs/pt/api/commands/fetch.md","docs/pt/api/commands/index.md","docs/pt/api/commands/input.md","docs/pt/api/commands/network.md","docs/pt/api/commands/page.md","docs/pt/api/commands/runtime.md","docs/pt/api/commands/storage.md","docs/pt/api/commands/target.md","docs/zh/api/commands/browser.md","docs/zh/api/commands/dom.md","docs/zh/api/commands/fetch.md","docs/zh/api/commands/index.md","docs/zh/api/commands/input.md","docs/zh/api/commands/network.md","docs/zh/api/commands/page.md","docs/zh/api/commands/runtime.md","docs/zh/api/commands/storage.md","docs/zh/api/commands/target.md"],"skills":{"docs/en/api/commands/browser.md":"# Browser Commands\n\nBrowser commands provide low-level control over browser instances and their configuration.\n\n## Overview\n\nThe browser commands module handles browser-level operations such as version information, target management, and browser-wide settings.\n\n::: pydoll.commands.browser_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nBrowser commands are typically used internally by browser classes to manage browser instances:\n\n```python\nfrom pydoll.commands.browser_commands import get_version\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get browser version information\nconnection = ConnectionHandler()\nversion_info = await get_version(connection)\n```\n\n## Available Commands\n\nThe browser commands module provides functions for:\n\n- Getting browser version and user agent information\n- Managing browser targets (tabs, windows)\n- Controlling browser-wide settings and permissions\n- Handling browser lifecycle events\n\n!!! note \"Internal Usage\"\n    These commands are primarily used internally by the `Chrome` and `Edge` browser classes. Direct usage is recommended only for advanced scenarios. ","docs/en/api/commands/dom.md":"# DOM Commands\n\nDOM commands provide comprehensive functionality for interacting with the Document Object Model of web pages.\n\n## Overview\n\nThe DOM commands module is one of the most important modules in Pydoll, providing all the functionality needed to find, interact with, and manipulate HTML elements on web pages.\n\n::: pydoll.commands.dom_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nDOM commands are used extensively by the `WebElement` class and element finding methods:\n\n```python\nfrom pydoll.commands.dom_commands import query_selector, get_attributes\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Find element and get its attributes\nconnection = ConnectionHandler()\nnode_id = await query_selector(connection, selector=\"#username\")\nattributes = await get_attributes(connection, node_id=node_id)\n```\n\n## Key Functionality\n\nThe DOM commands module provides functions for:\n\n### Element Finding\n- `query_selector()` - Find single element by CSS selector\n- `query_selector_all()` - Find multiple elements by CSS selector\n- `get_document()` - Get the document root node\n\n### Element Interaction\n- `click_element()` - Click on elements\n- `focus_element()` - Focus elements\n- `set_attribute_value()` - Set element attributes\n- `get_attributes()` - Get element attributes\n\n### Element Information\n- `get_box_model()` - Get element positioning and dimensions\n- `describe_node()` - Get detailed element information\n- `get_outer_html()` - Get element HTML content\n\n### DOM Manipulation\n- `remove_node()` - Remove elements from DOM\n- `set_node_value()` - Set element values\n- `request_child_nodes()` - Get child elements\n\n!!! tip \"High-Level APIs\"\n    While these commands provide powerful low-level access, most users should use the higher-level `WebElement` class methods like `click()`, `type_text()`, and `get_attribute()` which use these commands internally. ","docs/en/api/commands/fetch.md":"# Fetch Commands\n\nFetch commands provide advanced network request handling and interception capabilities using the Fetch API domain.\n\n## Overview\n\nThe fetch commands module enables sophisticated network request management, including request modification, response interception, and authentication handling.\n\n::: pydoll.commands.fetch_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nFetch commands are used for advanced network interception and request handling:\n\n```python\nfrom pydoll.commands.fetch_commands import enable, request_paused, continue_request\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable fetch domain\nconnection = ConnectionHandler()\nawait enable(connection, patterns=[{\n    \"urlPattern\": \"*\",\n    \"requestStage\": \"Request\"\n}])\n\n# Handle paused requests\nasync def handle_paused_request(request_id, request):\n    # Modify request or continue as-is\n    await continue_request(connection, request_id=request_id)\n```\n\n## Key Functionality\n\nThe fetch commands module provides functions for:\n\n### Request Interception\n- `enable()` - Enable fetch domain with patterns\n- `disable()` - Disable fetch domain\n- `continue_request()` - Continue intercepted requests\n- `fail_request()` - Fail requests with specific errors\n\n### Request Modification\n- Modify request headers\n- Change request URLs\n- Alter request methods (GET, POST, etc.)\n- Modify request bodies\n\n### Response Handling\n- `fulfill_request()` - Provide custom responses\n- `get_response_body()` - Get response content\n- Response header modification\n- Response status code control\n\n### Authentication\n- `continue_with_auth()` - Handle authentication challenges\n- Basic authentication support\n- Custom authentication flows\n\n## Advanced Features\n\n### Pattern-Based Interception\n```python\n# Intercept specific URL patterns\npatterns = [\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"},\n    {\"urlPattern\": \"*.js\", \"requestStage\": \"Response\"},\n    {\"urlPattern\": \"https://example.com/*\", \"requestStage\": \"Request\"}\n]\n\nawait enable(connection, patterns=patterns)\n```\n\n### Request Modification\n```python\n# Modify intercepted requests\nasync def modify_request(request_id, request):\n    # Add authentication header\n    headers = request.headers.copy()\n    headers[\"Authorization\"] = \"Bearer token123\"\n    \n    # Continue with modified headers\n    await continue_request(\n        connection,\n        request_id=request_id,\n        headers=headers\n    )\n```\n\n### Response Mocking\n```python\n# Mock API responses\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers=[\n        {\"name\": \"Content-Type\", \"value\": \"application/json\"},\n        {\"name\": \"Access-Control-Allow-Origin\", \"value\": \"*\"}\n    ],\n    body='{\"status\": \"success\", \"data\": {\"mocked\": true}}'\n)\n```\n\n### Authentication Handling\n```python\n# Handle authentication challenges\nawait continue_with_auth(\n    connection,\n    request_id=request_id,\n    auth_challenge_response={\n        \"response\": \"ProvideCredentials\",\n        \"username\": \"user\",\n        \"password\": \"pass\"\n    }\n)\n```\n\n## Request Stages\n\nFetch commands can intercept requests at different stages:\n\n| Stage | Description | Use Cases |\n|-------|-------------|-----------|\n| Request | Before request is sent | Modify headers, URL, method |\n| Response | After response received | Mock responses, modify content |\n\n## Error Handling\n\n```python\n# Fail requests with specific errors\nawait fail_request(\n    connection,\n    request_id=request_id,\n    error_reason=\"ConnectionRefused\"  # or \"AccessDenied\", \"TimedOut\", etc.\n)\n```\n\n## Integration with Network Commands\n\nFetch commands work alongside network commands but provide more granular control:\n\n- **Network Commands**: Broader network monitoring and control\n- **Fetch Commands**: Specific request/response interception and modification\n\n!!! tip \"Performance Considerations\"\n    Fetch interception can impact page loading performance. Use specific URL patterns and disable when not needed to minimize overhead. ","docs/en/api/commands/index.md":"# Commands Overview\n\nThe Commands module provides high-level interfaces for interacting with Chrome DevTools Protocol (CDP) domains. Each command module corresponds to a specific CDP domain and provides methods to execute various browser operations.\n\n## Available Command Modules\n\n### Browser Commands\n- **Module**: `browser_commands.py`\n- **Purpose**: Browser-level operations and window management\n- **Documentation**: [Browser Commands](browser.md)\n\n### DOM Commands\n- **Module**: `dom_commands.py`\n- **Purpose**: DOM tree manipulation and element operations\n- **Documentation**: [DOM Commands](dom.md)\n\n### Input Commands\n- **Module**: `input_commands.py`\n- **Purpose**: Input event simulation (keyboard, mouse, touch)\n- **Documentation**: [Input Commands](input.md)\n\n### Network Commands\n- **Module**: `network_commands.py`\n- **Purpose**: Network monitoring and request interception\n- **Documentation**: [Network Commands](network.md)\n\n### Page Commands\n- **Module**: `page_commands.py`\n- **Purpose**: Page lifecycle management and navigation\n- **Documentation**: [Page Commands](page.md)\n\n### Runtime Commands\n- **Module**: `runtime_commands.py`\n- **Purpose**: JavaScript execution and runtime management\n- **Documentation**: [Runtime Commands](runtime.md)\n\n### Storage Commands\n- **Module**: `storage_commands.py`\n- **Purpose**: Browser storage access (cookies, local storage, etc.)\n- **Documentation**: [Storage Commands](storage.md)\n\n### Target Commands\n- **Module**: `target_commands.py`\n- **Purpose**: Target management and tab operations\n- **Documentation**: [Target Commands](target.md)\n\n### Fetch Commands\n- **Module**: `fetch_commands.py`\n- **Purpose**: Network request interception and modification\n- **Documentation**: [Fetch Commands](fetch.md)\n\n## Usage Pattern\n\nCommands are typically accessed through the browser or tab instances:\n\n```python\nfrom pydoll.browser.chromium import Chrome\n\n# Initialize browser\nbrowser = Chrome()\nawait browser.start()\n\n# Get active tab\ntab = await browser.get_active_tab()\n\n# Use commands through the tab\nawait tab.navigate(\"https://example.com\")\nelement = await tab.find(id=\"button\")\nawait element.click()\n```\n\n## Command Structure\n\nEach command module follows a consistent pattern:\n- **Static methods**: For direct command execution\n- **Type hints**: Full type safety with protocol types\n- **Error handling**: Proper exception handling for CDP errors\n- **Documentation**: Comprehensive docstrings with examples ","docs/en/api/commands/input.md":"# Input Commands\n\nInput commands handle mouse and keyboard interactions, providing human-like input simulation.\n\n## Overview\n\nThe input commands module provides functionality for simulating user input including mouse movements, clicks, keyboard typing, and key presses.\n\n::: pydoll.commands.input_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nInput commands are used by element interaction methods and can be used directly for advanced input scenarios:\n\n```python\nfrom pydoll.commands.input_commands import dispatch_mouse_event, dispatch_key_event\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Simulate mouse click\nconnection = ConnectionHandler()\nawait dispatch_mouse_event(\n    connection, \n    type=\"mousePressed\", \n    x=100, \n    y=200, \n    button=\"left\"\n)\n\n# Simulate keyboard typing\nawait dispatch_key_event(\n    connection,\n    type=\"keyDown\",\n    key=\"Enter\"\n)\n```\n\n## Key Functionality\n\nThe input commands module provides functions for:\n\n### Mouse Events\n- `dispatch_mouse_event()` - Mouse clicks, movements, and wheel events\n- Mouse button states (left, right, middle)\n- Coordinate-based positioning\n- Drag and drop operations\n\n### Keyboard Events\n- `dispatch_key_event()` - Key press and release events\n- `insert_text()` - Direct text insertion\n- Special key handling (Enter, Tab, Arrow keys, etc.)\n- Modifier keys (Ctrl, Alt, Shift)\n\n### Touch Events\n- Touch screen simulation\n- Multi-touch gestures\n- Touch coordinates and pressure\n\n## Human-like Behavior\n\nThe input commands support human-like behavior patterns:\n\n- Natural mouse movement curves\n- Realistic typing speeds and patterns\n- Random micro-delays between actions\n- Pressure-sensitive touch events\n\n!!! tip \"Element Methods\"\n    For most use cases, use the higher-level element methods like `element.click()` and `element.type_text()` which provide a more convenient API and handle common scenarios automatically. ","docs/en/api/commands/network.md":"# Network Commands\n\nNetwork commands provide comprehensive control over network requests, responses, and browser networking behavior.\n\n## Overview\n\nThe network commands module enables request interception, response modification, cookie management, and network monitoring capabilities.\n\n::: pydoll.commands.network_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nNetwork commands are used for advanced scenarios like request interception and network monitoring:\n\n```python\nfrom pydoll.commands.network_commands import enable, set_request_interception\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable network monitoring\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Enable request interception\nawait set_request_interception(connection, patterns=[{\"urlPattern\": \"*\"}])\n```\n\n## Key Functionality\n\nThe network commands module provides functions for:\n\n### Request Management\n- `enable()` / `disable()` - Enable/disable network monitoring\n- `set_request_interception()` - Intercept and modify requests\n- `continue_intercepted_request()` - Continue or modify intercepted requests\n- `get_request_post_data()` - Get request body data\n\n### Response Handling\n- `get_response_body()` - Get response content\n- `fulfill_request()` - Provide custom responses\n- `fail_request()` - Simulate network failures\n\n### Cookie Management\n- `get_cookies()` - Get browser cookies\n- `set_cookies()` - Set browser cookies\n- `delete_cookies()` - Delete specific cookies\n- `clear_browser_cookies()` - Clear all cookies\n\n### Cache Control\n- `clear_browser_cache()` - Clear browser cache\n- `set_cache_disabled()` - Disable browser cache\n- `get_response_body_for_interception()` - Get cached responses\n\n### Security & Headers\n- `set_user_agent_override()` - Override user agent\n- `set_extra_http_headers()` - Add custom headers\n- `emulate_network_conditions()` - Simulate network conditions\n\n## Advanced Use Cases\n\n### Request Interception\n```python\n# Intercept and modify requests\nawait set_request_interception(connection, patterns=[\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"}\n])\n\n# Handle intercepted request\nasync def handle_request(request):\n    if \"api/login\" in request.url:\n        # Modify request headers\n        headers = request.headers.copy()\n        headers[\"Authorization\"] = \"Bearer token\"\n        await continue_intercepted_request(\n            connection, \n            request_id=request.request_id,\n            headers=headers\n        )\n```\n\n### Response Mocking\n```python\n# Mock API responses\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers={\"Content-Type\": \"application/json\"},\n    body='{\"status\": \"success\"}'\n)\n```\n\n!!! warning \"Performance Impact\"\n    Network interception can impact page loading performance. Use selectively and disable when not needed. ","docs/en/api/commands/page.md":"# Page Commands\n\nPage commands handle page navigation, lifecycle events, and page-level operations.\n\n## Overview\n\nThe page commands module provides functionality for navigating between pages, managing page lifecycle, handling JavaScript execution, and controlling page behavior.\n\n::: pydoll.commands.page_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nPage commands are used extensively by the `Tab` class for navigation and page management:\n\n```python\nfrom pydoll.commands.page_commands import navigate, reload, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Navigate to a URL\nconnection = ConnectionHandler()\nawait enable(connection)  # Enable page events\nawait navigate(connection, url=\"https://example.com\")\n\n# Reload the page\nawait reload(connection)\n```\n\n## Key Functionality\n\nThe page commands module provides functions for:\n\n### Navigation\n- `navigate()` - Navigate to URLs\n- `reload()` - Reload current page\n- `go_back()` - Navigate back in history\n- `go_forward()` - Navigate forward in history\n- `stop_loading()` - Stop page loading\n\n### Page Lifecycle\n- `enable()` / `disable()` - Enable/disable page events\n- `get_frame_tree()` - Get page frame structure\n- `get_navigation_history()` - Get navigation history\n\n### Content Management\n- `get_resource_content()` - Get page resource content\n- `search_in_resource()` - Search within page resources\n- `set_document_content()` - Set page HTML content\n\n### Screenshots & PDF\n- `capture_screenshot()` - Take page screenshots\n- `print_to_pdf()` - Generate PDF from page\n- `capture_snapshot()` - Capture page snapshots\n\n### JavaScript Execution\n- `add_script_to_evaluate_on_new_document()` - Add startup scripts\n- `remove_script_to_evaluate_on_new_document()` - Remove startup scripts\n\n### Page Settings\n- `set_lifecycle_events_enabled()` - Control lifecycle events\n- `set_ad_blocking_enabled()` - Enable/disable ad blocking\n- `set_bypass_csp()` - Bypass Content Security Policy\n\n## Advanced Features\n\n### Frame Management\n```python\n# Get all frames in the page\nframe_tree = await get_frame_tree(connection)\nfor frame in frame_tree.child_frames:\n    print(f\"Frame: {frame.frame.url}\")\n```\n\n### Resource Interception\n```python\n# Get resource content\ncontent = await get_resource_content(\n    connection, \n    frame_id=frame_id, \n    url=\"https://example.com/script.js\"\n)\n```\n\n### Page Events\nThe page commands work with various page events:\n- `Page.loadEventFired` - Page load completed\n- `Page.domContentEventFired` - DOM content loaded\n- `Page.frameNavigated` - Frame navigation\n- `Page.frameStartedLoading` - Frame loading started\n\n!!! tip \"Tab Class Integration\"\n    Most page operations are available through the `Tab` class methods like `tab.go_to()`, `tab.reload()`, and `tab.screenshot()` which provide a more convenient API. ","docs/en/api/commands/runtime.md":"# Runtime Commands\n\nRuntime commands provide JavaScript execution capabilities and runtime environment management.\n\n## Overview\n\nThe runtime commands module enables JavaScript code execution, object inspection, and runtime environment control within browser contexts.\n\n::: pydoll.commands.runtime_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nRuntime commands are used for JavaScript execution and runtime management:\n\n```python\nfrom pydoll.commands.runtime_commands import evaluate, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable runtime events\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Execute JavaScript\nresult = await evaluate(\n    connection, \n    expression=\"document.title\",\n    return_by_value=True\n)\nprint(result.value)  # Page title\n```\n\n## Key Functionality\n\nThe runtime commands module provides functions for:\n\n### JavaScript Execution\n- `evaluate()` - Execute JavaScript expressions\n- `call_function_on()` - Call functions on objects\n- `compile_script()` - Compile JavaScript for reuse\n- `run_script()` - Run compiled scripts\n\n### Object Management\n- `get_properties()` - Get object properties\n- `release_object()` - Release object references\n- `release_object_group()` - Release object groups\n\n### Runtime Control\n- `enable()` / `disable()` - Enable/disable runtime events\n- `discard_console_entries()` - Clear console entries\n- `set_custom_object_formatter_enabled()` - Enable custom formatters\n\n### Exception Handling\n- `set_async_call_stack_depth()` - Set call stack depth\n- Exception capture and reporting\n- Error object inspection\n\n## Advanced Usage\n\n### Complex JavaScript Execution\n```python\n# Execute complex JavaScript with error handling\nscript = \"\"\"\ntry {\n    const elements = document.querySelectorAll('.item');\n    return Array.from(elements).map(el => ({\n        text: el.textContent,\n        href: el.href\n    }));\n} catch (error) {\n    return { error: error.message };\n}\n\"\"\"\n\nresult = await evaluate(\n    connection,\n    expression=script,\n    return_by_value=True,\n    await_promise=True\n)\n```\n\n### Object Inspection\n```python\n# Get detailed object properties\nproperties = await get_properties(\n    connection,\n    object_id=object_id,\n    own_properties=True,\n    accessor_properties_only=False\n)\n\nfor prop in properties:\n    print(f\"{prop.name}: {prop.value}\")\n```\n\n### Console Integration\nRuntime commands integrate with browser console:\n- Console messages and errors\n- Console API method calls\n- Custom console formatters\n\n!!! note \"Performance Considerations\"\n    JavaScript execution through runtime commands can be slower than native browser execution. Use judiciously for complex operations. ","docs/en/api/commands/storage.md":"# Storage Commands\n\nStorage commands provide comprehensive browser storage management including cookies, localStorage, sessionStorage, and IndexedDB.\n\n## Overview\n\nThe storage commands module enables management of all browser storage mechanisms, providing functionality for data persistence and retrieval.\n\n::: pydoll.commands.storage_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nStorage commands are used for managing browser storage across different mechanisms:\n\n```python\nfrom pydoll.commands.storage_commands import get_cookies, set_cookies, clear_data_for_origin\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get cookies for a domain\nconnection = ConnectionHandler()\ncookies = await get_cookies(connection, urls=[\"https://example.com\"])\n\n# Set a new cookie\nawait set_cookies(connection, cookies=[{\n    \"name\": \"session_id\",\n    \"value\": \"abc123\",\n    \"domain\": \"example.com\",\n    \"path\": \"/\",\n    \"httpOnly\": True,\n    \"secure\": True\n}])\n\n# Clear all storage for an origin\nawait clear_data_for_origin(\n    connection,\n    origin=\"https://example.com\",\n    storage_types=\"all\"\n)\n```\n\n## Key Functionality\n\nThe storage commands module provides functions for:\n\n### Cookie Management\n- `get_cookies()` - Get cookies by URL or domain\n- `set_cookies()` - Set new cookies\n- `delete_cookies()` - Delete specific cookies\n- `clear_cookies()` - Clear all cookies\n\n### Local Storage\n- `get_dom_storage_items()` - Get localStorage items\n- `set_dom_storage_item()` - Set localStorage item\n- `remove_dom_storage_item()` - Remove localStorage item\n- `clear_dom_storage()` - Clear localStorage\n\n### Session Storage\n- Session storage operations (similar to localStorage)\n- Session-specific data management\n- Tab-isolated storage\n\n### IndexedDB\n- `get_database_names()` - Get IndexedDB databases\n- `request_database()` - Access database structure\n- `request_data()` - Query database data\n- `clear_object_store()` - Clear object stores\n\n### Cache Storage\n- `request_cache_names()` - Get cache names\n- `request_cached_response()` - Get cached responses\n- `delete_cache()` - Delete cache entries\n\n### Application Cache (Deprecated)\n- Legacy application cache support\n- Manifest-based caching\n\n## Advanced Features\n\n### Bulk Operations\n```python\n# Clear all storage types for multiple origins\norigins = [\"https://example.com\", \"https://api.example.com\"]\nfor origin in origins:\n    await clear_data_for_origin(\n        connection,\n        origin=origin,\n        storage_types=\"cookies,local_storage,session_storage,indexeddb\"\n    )\n```\n\n### Storage Quotas\n```python\n# Get storage quota information\nquota_info = await get_usage_and_quota(connection, origin=\"https://example.com\")\nprint(f\"Used: {quota_info.usage} bytes\")\nprint(f\"Quota: {quota_info.quota} bytes\")\n```\n\n### Cross-Origin Storage\n```python\n# Manage storage across different origins\nawait set_cookies(connection, cookies=[{\n    \"name\": \"cross_site_token\",\n    \"value\": \"token123\",\n    \"domain\": \".example.com\",  # Applies to all subdomains\n    \"sameSite\": \"None\",\n    \"secure\": True\n}])\n```\n\n## Storage Types\n\nThe module supports various storage mechanisms:\n\n| Storage Type | Persistence | Scope | Capacity |\n|--------------|-------------|-------|----------|\n| Cookies | Persistent | Domain/Path | ~4KB per cookie |\n| localStorage | Persistent | Origin | ~5-10MB |\n| sessionStorage | Session | Tab | ~5-10MB |\n| IndexedDB | Persistent | Origin | Large (GB+) |\n| Cache API | Persistent | Origin | Large |\n\n!!! warning \"Privacy Considerations\"\n    Storage operations can affect user privacy. Always handle storage data responsibly and in compliance with privacy regulations. ","docs/en/api/commands/target.md":"# Target Commands\n\nTarget commands manage browser targets including tabs, windows, and other browsing contexts.\n\n## Overview\n\nThe target commands module provides functionality for creating, managing, and controlling browser targets such as tabs, popup windows, and service workers.\n\n::: pydoll.commands.target_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nTarget commands are used internally by browser classes to manage tabs and windows:\n\n```python\nfrom pydoll.commands.target_commands import get_targets, create_target, close_target\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get all browser targets\nconnection = ConnectionHandler()\ntargets = await get_targets(connection)\n\n# Create a new tab\nnew_target = await create_target(connection, url=\"https://example.com\")\n\n# Close a target\nawait close_target(connection, target_id=new_target.target_id)\n```\n\n## Key Functionality\n\nThe target commands module provides functions for:\n\n### Target Management\n- `get_targets()` - List all browser targets\n- `create_target()` - Create new tabs or windows\n- `close_target()` - Close specific targets\n- `activate_target()` - Bring target to foreground\n\n### Target Information\n- `get_target_info()` - Get detailed target information\n- Target types: page, background_page, service_worker, browser\n- Target states: attached, detached, crashed\n\n### Session Management\n- `attach_to_target()` - Attach to target for control\n- `detach_from_target()` - Detach from target\n- `send_message_to_target()` - Send commands to targets\n\n### Browser Context\n- `create_browser_context()` - Create isolated browser context\n- `dispose_browser_context()` - Remove browser context\n- `get_browser_contexts()` - List browser contexts\n\n## Target Types\n\nDifferent types of targets can be managed:\n\n### Page Targets\n```python\n# Create a new tab\npage_target = await create_target(\n    connection,\n    url=\"https://example.com\",\n    width=1920,\n    height=1080,\n    browser_context_id=None  # Default context\n)\n```\n\n### Popup Windows\n```python\n# Create a popup window\npopup_target = await create_target(\n    connection,\n    url=\"https://popup.example.com\",\n    width=800,\n    height=600,\n    new_window=True\n)\n```\n\n### Incognito Contexts\n```python\n# Create incognito browser context\nincognito_context = await create_browser_context(connection)\n\n# Create tab in incognito context\nincognito_tab = await create_target(\n    connection,\n    url=\"https://private.example.com\",\n    browser_context_id=incognito_context.browser_context_id\n)\n```\n\n!!! info \"Headless vs Headed: how contexts show up\"\n    Browser contexts are isolated logical environments. In headed mode, the first page created inside a new context will usually open in a new OS window. In headless mode, no window is shown — the isolation remains purely logical (cookies, storage, cache and auth state are still separate per context). Prefer contexts in headless/CI pipelines for performance and clean isolation.\n\n## Advanced Features\n\n### Target Events\nTarget commands work with various target events:\n- `Target.targetCreated` - New target created\n- `Target.targetDestroyed` - Target closed\n- `Target.targetInfoChanged` - Target information updated\n- `Target.targetCrashed` - Target crashed\n\n### Multi-Target Coordination\n```python\n# Manage multiple tabs\ntargets = await get_targets(connection)\npage_targets = [t for t in targets if t.type == \"page\"]\n\nfor target in page_targets:\n    # Perform operations on each tab\n    await activate_target(connection, target_id=target.target_id)\n    # ... do work in this tab\n```\n\n### Target Isolation\n```python\n# Create isolated browser context for testing\ntest_context = await create_browser_context(connection)\n\n# All targets in this context are isolated\ntest_tab1 = await create_target(\n    connection, \n    url=\"https://test1.com\",\n    browser_context_id=test_context.browser_context_id\n)\n\ntest_tab2 = await create_target(\n    connection,\n    url=\"https://test2.com\", \n    browser_context_id=test_context.browser_context_id\n)\n```\n\n!!! note \"Browser Integration\"\n    Target commands are primarily used internally by the `Chrome` and `Edge` browser classes. The high-level browser APIs provide more convenient methods for tab management. ","docs/pt/api/commands/browser.md":"# Comandos do Navegador\n\nOs comandos do navegador fornecem controle de baixo nível sobre as instâncias do navegador e sua configuração.\n\n## Visão Geral\n\nO módulo de comandos do navegador lida com operações em nível de navegador, como informações de versão, gerenciamento de alvos (targets) e configurações globais do navegador.\n\n::: pydoll.commands.browser_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos do navegador são tipicamente usados internamente pelas classes do navegador para gerenciar instâncias do navegador:\n\n```python\nfrom pydoll.commands.browser_commands import get_version\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Obter informações da versão do navegador\nconnection = ConnectionHandler()\nversion_info = await get_version(connection)\n```\n\n## Comandos Disponíveis\n\nO módulo de comandos do navegador fornece funções para:\n\n- Obter informações de versão do navegador e user agent\n- Gerenciar alvos (targets) do navegador (abas, janelas)\n- Controlar configurações e permissões globais do navegador\n- Lidar com eventos do ciclo de vida do navegador\n\n!!! note \"Uso Interno\"\n    Esses comandos são usados principalmente internamente pelas classes de navegador `Chrome` e `Edge`. O uso direto é recomendado apenas para cenários avançados.","docs/pt/api/commands/dom.md":"# Comandos DOM\n\nOs comandos DOM fornecem funcionalidade abrangente para interagir com o Document Object Model (Modelo de Objeto de Documento) das páginas web.\n\n## Visão Geral\n\nO módulo de comandos DOM é um dos módulos mais importantes no Pydoll, fornecendo toda a funcionalidade necessária para encontrar, interagir com e manipular elementos HTML em páginas web.\n\n::: pydoll.commands.dom_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos DOM são usados extensivamente pela classe `WebElement` e pelos métodos de localização de elementos:\n\n```python\nfrom pydoll.commands.dom_commands import query_selector, get_attributes\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Encontrar elemento e obter seus atributos\nconnection = ConnectionHandler()\nnode_id = await query_selector(connection, selector=\"#username\")\nattributes = await get_attributes(connection, node_id=node_id)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos DOM fornece funções para:\n\n### Localização de Elementos\n- `query_selector()` - Encontrar elemento único por seletor CSS\n- `query_selector_all()` - Encontrar múltiplos elementos por seletor CSS\n- `get_document()` - Obter o nó raiz do documento\n\n### Interação com Elementos\n- `click_element()` - Clicar em elementos\n- `focus_element()` - Focar em elementos\n- `set_attribute_value()` - Definir atributos do elemento\n- `get_attributes()` - Obter atributos do elemento\n\n### Informações do Elemento\n- `get_box_model()` - Obter posicionamento e dimensões do elemento\n- `describe_node()` - Obter informações detalhadas do elemento\n- `get_outer_html()` - Obter o conteúdo HTML do elemento\n\n### Manipulação do DOM\n- `remove_node()` - Remover elementos do DOM\n- `set_node_value()` - Definir valores do elemento\n- `request_child_nodes()` - Obter elementos filhos\n\n!!! tip \"APIs de Alto Nível\"\n    Embora esses comandos forneçam acesso poderoso de baixo nível, a maioria dos usuários deve usar os métodos de nível superior da classe `WebElement`, como `click()`, `type_text()` e `get_attribute()`, que usam esses comandos internamente.","docs/pt/api/commands/fetch.md":"# Comandos Fetch\n\nOs comandos Fetch fornecem capacidades avançadas de manipulação e interceptação de requisições de rede usando o domínio da API Fetch.\n\n## Visão Geral\n\nO módulo de comandos fetch permite o gerenciamento sofisticado de requisições de rede, incluindo modificação de requisições, interceptação de respostas e manipulação de autenticação.\n\n::: pydoll.commands.fetch_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos Fetch são usados para interceptação avançada de rede e manipulação de requisições:\n\n```python\nfrom pydoll.commands.fetch_commands import enable, request_paused, continue_request\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Habilitar domínio fetch\nconnection = ConnectionHandler()\nawait enable(connection, patterns=[{\n    \"urlPattern\": \"*\",\n    \"requestStage\": \"Request\"\n}])\n\n# Lidar com requisições pausadas\nasync def handle_paused_request(request_id, request):\n    # Modificar requisição ou continuar como está\n    await continue_request(connection, request_id=request_id)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos fetch fornece funções para:\n\n### Interceptação de Requisição\n- `enable()` - Habilitar domínio fetch com padrões\n- `disable()` - Desabilitar domínio fetch\n- `continue_request()` - Continuar requisições interceptadas\n- `fail_request()` - Falhar requisições com erros específicos\n\n### Modificação de Requisição\n- Modificar cabeçalhos da requisição\n- Alterar URLs da requisição\n- Alterar métodos da requisição (GET, POST, etc.)\n- Modificar corpos (bodies) da requisição\n\n### Manipulação de Resposta\n- `fulfill_request()` - Fornecer respostas customizadas\n- `get_response_body()` - Obter conteúdo da resposta\n- Modificação de cabeçalho de resposta\n- Controle do código de status da resposta\n\n### Autenticação\n- `continue_with_auth()` - Lidar com desafios de autenticação\n- Suporte a autenticação básica\n- Fluxos de autenticação customizados\n\n## Recursos Avançados\n\n### Interceptação Baseada em Padrões\n```python\n# Interceptar padrões de URL específicos\npatterns = [\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"},\n    {\"urlPattern\": \"*.js\", \"requestStage\": \"Response\"},\n    {\"urlPattern\": \"https://example.com/*\", \"requestStage\": \"Request\"}\n]\n\nawait enable(connection, patterns=patterns)\n```\n\n### Modificação de Requisição\n```python\n# Modificar requisições interceptadas\nasync def modify_request(request_id, request):\n    # Adicionar cabeçalho de autenticação\n    headers = request.headers.copy()\n    headers[\"Authorization\"] = \"Bearer token123\"\n    \n    # Continuar com cabeçalhos modificados\n    await continue_request(\n        connection,\n        request_id=request_id,\n        headers=headers\n    )\n```\n\n### Simulação de Resposta (Mocking)\n```python\n# Simular (mockar) respostas de API\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers=[\n        {\"name\": \"Content-Type\", \"value\": \"application/json\"},\n        {\"name\": \"Access-Control-Allow-Origin\", \"value\": \"*\"}\n    ],\n    body='{\"status\": \"success\", \"data\": {\"mocked\": true}}'\n)\n```\n\n### Manipulação de Autenticação\n```python\n# Lidar com desafios de autenticação\nawait continue_with_auth(\n    connection,\n    request_id=request_id,\n    auth_challenge_response={\n        \"response\": \"ProvideCredentials\",\n        \"username\": \"user\",\n        \"password\": \"pass\"\n    }\n)\n```\n\n## Estágios da Requisição\n\nOs comandos Fetch podem interceptar requisições em diferentes estágios:\n\n| Estágio | Descrição | Casos de Uso |\n|-------|-------------|-----------|\n| Requisição | Antes da requisição ser enviada | Modificar cabeçalhos, URL, método |\n| Resposta | Após a resposta ser recebida | Simular respostas, modificar conteúdo |\n\n## Manipulação de Erros\n\n```python\n# Falhar requisições com erros específicos\nawait fail_request(\n    connection,\n    request_id=request_id,\n    error_reason=\"ConnectionRefused\"  # ou \"AccessDenied\", \"TimedOut\", etc.\n)\n```\n\n## Integração com Comandos de Rede (Network)\n\nOs comandos Fetch trabalham em conjunto com os comandos de rede (Network), mas fornecem controle mais granular:\n\n- **Comandos de Rede (Network)**: Monitoramento e controle de rede mais amplos\n- **Comandos Fetch**: Interceptação e modificação específicas de requisição/resposta\n\n!!! tip \"Considerações de Performance\"\n    A interceptação do Fetch pode impactar a performance de carregamento da página. Use padrões de URL específicos e desabilite quando não for necessário para minimizar a sobrecarga (overhead).","docs/pt/api/commands/index.md":"# Visão Geral dos Comandos\n\nO módulo de Comandos (Commands) fornece interfaces de alto nível para interagir com os domínios do Chrome DevTools Protocol (CDP). Cada módulo de comando corresponde a um domínio CDP específico e fornece métodos para executar várias operações do navegador.\n\n## Módulos de Comando Disponíveis\n\n### Comandos do Navegador (Browser)\n- **Módulo**: `browser_commands.py`\n- **Propósito**: Operações em nível de navegador e gerenciamento de janelas\n- **Documentação**: [Comandos do Navegador](browser.md)\n\n### Comandos DOM\n- **Módulo**: `dom_commands.py`\n- **Propósito**: Manipulação da árvore DOM e operações de elementos\n- **Documentação**: [Comandos DOM](dom.md)\n\n### Comandos de Entrada (Input)\n- **Módulo**: `input_commands.py`\n- **Propósito**: Simulação de eventos de entrada (teclado, mouse, toque)\n- **Documentação**: [Comandos de Entrada](input.md)\n\n### Comandos de Rede (Network)\n- **Módulo**: `network_commands.py`\n- **Propósito**: Monitoramento de rede e interceptação de requisições\n- **Documentação**: [Comandos de Rede](network.md)\n\n### Comandos de Página (Page)\n- **Módulo**: `page_commands.py`\n- **Propósito**: Gerenciamento do ciclo de vida da página e navegação\n- **Documentação**: [Comandos de Página](page.md)\n\n### Comandos de Tempo de Execução (Runtime)\n- **Módulo**: `runtime_commands.py`\n- **Propósito**: Execução de JavaScript e gerenciamento de tempo de execução\n- **Documentação**: [Comandos de Tempo de Execução](runtime.md)\n\n### Comandos de Armazenamento (Storage)\n- **Módulo**: `storage_commands.py`\n- **Propósito**: Acesso ao armazenamento do navegador (cookies, local storage, etc.)\n- **Documentação**: [Comandos de Armazenamento](storage.md)\n\n### Comandos de Alvo (Target)\n- **Módulo**: `target_commands.py`\n- **Propósito**: Gerenciamento de alvos (targets) e operações de aba\n- **Documentação**: [Comandos de Alvo](target.md)\n\n### Comandos Fetch\n- **Módulo**: `fetch_commands.py`\n- **Propósito**: Interceptação e modificação de requisições de rede\n- **Documentação**: [Comandos Fetch](fetch.md)\n\n## Padrão de Uso\n\nOs comandos são tipicamente acessados através das instâncias do navegador (browser) ou aba (tab):\n\n```python\nfrom pydoll.browser.chromium import Chrome\n\n# Inicializa o navegador\nbrowser = Chrome()\nawait browser.start()\n\n# Obtém a aba ativa\ntab = await browser.get_active_tab()\n\n# Usa comandos através da aba\nawait tab.navigate(\"https://example.com\")\nelement = await tab.find(id=\"button\")\nawait element.click()\n```\n\n## Estrutura dos Comandos\n\nCada módulo de comando segue um padrão consistente:\n- **Métodos estáticos**: Para execução direta de comandos\n- **Dicas de tipo (Type hints)**: Segurança de tipo (type safety) completa com tipos de protocolo\n- **Tratamento de erros**: Tratamento de exceção adequado para erros CDP\n- **Documentação**: Docstrings abrangentes com exemplos","docs/pt/api/commands/input.md":"# Comandos de Entrada (Input)\n\nOs comandos de entrada lidam com interações de mouse e teclado, fornecendo simulação de entrada semelhante à humana.\n\n## Visão Geral\n\nO módulo de comandos de entrada fornece funcionalidade para simular a entrada do usuário, incluindo movimentos do mouse, cliques, digitação no teclado e pressionamento de teclas.\n\n::: pydoll.commands.input_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de entrada são usados por métodos de interação de elementos e podem ser usados diretamente para cenários de entrada avançados:\n\n```python\nfrom pydoll.commands.input_commands import dispatch_mouse_event, dispatch_key_event\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Simular clique do mouse\nconnection = ConnectionHandler()\nawait dispatch_mouse_event(\n    connection, \n    type=\"mousePressed\", \n    x=100, \n    y=200, \n    button=\"left\"\n)\n\n# Simular digitação do teclado\nawait dispatch_key_event(\n    connection,\n    type=\"keyDown\",\n    key=\"Enter\"\n)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de entrada fornece funções para:\n\n### Eventos de Mouse\n- `dispatch_mouse_event()` - Cliques, movimentos e eventos de roda do mouse\n- Estados dos botões do mouse (esquerdo, direito, meio)\n- Posicionamento baseado em coordenadas\n- Operações de arrastar e soltar (drag and drop)\n\n### Eventos de Teclado\n- `dispatch_key_event()` - Eventos de pressionar e soltar tecla\n- `insert_text()` - Inserção direta de texto\n- Manipulação de teclas especiais (Enter, Tab, teclas de seta, etc.)\n- Teclas modificadoras (Ctrl, Alt, Shift)\n\n### Eventos de Toque (Touch)\n- Simulação de tela de toque\n- Gestos multitoque (multi-touch)\n- Coordenadas e pressão do toque\n\n## Comportamento Semelhante ao Humano\n\nOs comandos de entrada suportam padrões de comportamento semelhantes ao humano:\n\n- Curvas naturais de movimento do mouse\n- Velocidades e padrões de digitação realistas\n- Micro-atrasos aleatórios entre ações\n- Eventos de toque sensíveis à pressão\n\n!!! tip \"Métodos de Elemento\"\n    Para a maioria dos casos de uso, utilize os métodos de elemento de nível superior, como `element.click()` e `element.type_text()`, que fornecem uma API mais conveniente e lidam com cenários comuns automaticamente.","docs/pt/api/commands/network.md":"# Comandos de Rede (Network)\n\nOs comandos de rede fornecem controle abrangente sobre requisições de rede, respostas e comportamento de rede do navegador.\n\n## Visão Geral\n\nO módulo de comandos de rede habilita a interceptação de requisições, modificação de respostas, gerenciamento de cookies e capacidades de monitoramento de rede.\n\n::: pydoll.commands.network_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de rede são usados para cenários avançados como interceptação de requisições e monitoramento de rede:\n\n```python\nfrom pydoll.commands.network_commands import enable, set_request_interception\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Habilitar monitoramento de rede\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Habilitar interceptação de requisições\nawait set_request_interception(connection, patterns=[{\"urlPattern\": \"*\"}])\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de rede fornece funções para:\n\n### Gerenciamento de Requisições\n- `enable()` / `disable()` - Habilitar/desabilitar monitoramento de rede\n- `set_request_interception()` - Interceptar e modificar requisições\n- `continue_intercepted_request()` - Continuar ou modificar requisições interceptadas\n- `get_request_post_data()` - Obter dados do corpo (body) da requisição\n\n### Manipulação de Respostas\n- `get_response_body()` - Obter conteúdo da resposta\n- `fulfill_request()` - Fornecer respostas customizadas\n- `fail_request()` - Simular falhas de rede\n\n### Gerenciamento de Cookies\n- `get_cookies()` - Obter cookies do navegador\n- `set_cookies()` - Definir cookies do navegador\n- `delete_cookies()` - Deletar cookies específicos\n- `clear_browser_cookies()` - Limpar todos os cookies\n\n### Controle de Cache\n- `clear_browser_cache()` - Limpar cache do navegador\n- `set_cache_disabled()` - Desabilitar cache do navegador\n- `get_response_body_for_interception()` - Obter respostas em cache\n\n### Segurança & Cabeçalhos\n- `set_user_agent_override()` - Sobrescrever user agent\n- `set_extra_http_headers()` - Adicionar cabeçalhos customizados\n- `emulate_network_conditions()` - Simular condições de rede\n\n## Casos de Uso Avançados\n\n### Interceptação de Requisição\n```python\n# Interceptar e modificar requisições\nawait set_request_interception(connection, patterns=[\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"}\n])\n\n# Lidar com requisição interceptada\nasync def handle_request(request):\n    if \"api/login\" in request.url:\n        # Modificar cabeçalhos da requisição\n        headers = request.headers.copy()\n        headers[\"Authorization\"] = \"Bearer token\"\n        await continue_intercepted_request(\n            connection, \n            request_id=request.request_id,\n            headers=headers\n        )\n```\n\n### Simulação de Resposta (Mocking)\n```python\n# Simular (mockar) respostas de API\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers={\"Content-Type\": \"application/json\"},\n    body='{\"status\": \"success\"}'\n)\n```\n\n!!! warning \"Impacto na Performance\"\n    A interceptação de rede pode impactar a performance de carregamento da página. Use seletivamente e desabilite quando não for necessário.","docs/pt/api/commands/page.md":"# Comandos de Página (Page)\n\nOs comandos de página lidam com a navegação da página, eventos do ciclo de vida e operações em nível de página.\n\n## Visão Geral\n\nO módulo de comandos de página fornece funcionalidade para navegar entre páginas, gerenciar o ciclo de vida da página, lidar com a execução de JavaScript e controlar o comportamento da página.\n\n::: pydoll.commands.page_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de página são usados extensivamente pela classe `Tab` para navegação e gerenciamento da página:\n\n```python\nfrom pydoll.commands.page_commands import navigate, reload, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Navegar para uma URL\nconnection = ConnectionHandler()\nawait enable(connection)  # Habilitar eventos da página\nawait navigate(connection, url=\"https://example.com\")\n\n# Recarregar a página\nawait reload(connection)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de página fornece funções para:\n\n### Navegação\n- `Maps()` - Navegar para URLs\n- `reload()` - Recarregar página atual\n- `go_back()` - Navegar para trás no histórico\n- `go_forward()` - Navegar para frente no histórico\n- `stop_loading()` - Parar carregamento da página\n\n### Ciclo de Vida da Página\n- `enable()` / `disable()` - Habilitar/desabilitar eventos da página\n- `get_frame_tree()` - Obter estrutura de frames da página\n- `get_navigation_history()` - Obter histórico de navegação\n\n### Gerenciamento de Conteúdo\n- `get_resource_content()` - Obter conteúdo de recurso da página\n- `search_in_resource()` - Pesquisar dentro de recursos da página\n- `set_document_content()` - Definir conteúdo HTML da página\n\n### Capturas de Tela & PDF\n- `capture_screenshot()` - Tirar capturas de tela da página\n- `print_to_pdf()` - Gerar PDF a partir da página\n- `capture_snapshot()` - Capturar snapshots da página\n\n### Execução de JavaScript\n- `add_script_to_evaluate_on_new_document()` - Adicionar scripts para avaliar em novo documento (scripts de inicialização)\n- `remove_script_to_evaluate_on_new_document()` - Remover scripts de inicialização\n\n### Configurações da Página\n- `set_lifecycle_events_enabled()` - Controlar eventos do ciclo de vida\n- `set_ad_blocking_enabled()` - Habilitar/desabilitar bloqueio de anúncios\n- `set_bypass_csp()` - Contornar (Bypass) Política de Segurança de Conteúdo (CSP)\n\n## Recursos Avançados\n\n### Gerenciamento de Frames\n```python\n# Obter todos os frames na página\nframe_tree = await get_frame_tree(connection)\nfor frame in frame_tree.child_frames:\n    print(f\"Frame: {frame.frame.url}\")\n```\n\n### Interceptação de Recursos\n```python\n# Obter conteúdo do recurso\ncontent = await get_resource_content(\n    connection, \n    frame_id=frame_id, \n    url=\"https://example.com/script.js\"\n)\n```\n\n### Eventos da Página\nOs comandos de página funcionam com vários eventos de página:\n- `Page.loadEventFired` - Carregamento da página concluído\n- `Page.domContentEventFired` - Conteúdo DOM carregado\n- `Page.frameNavigated` - Navegação do frame\n- `Page.frameStartedLoading` - Carregamento do frame iniciado\n\n!!! tip \"Integração com a Classe Tab\"\n    A maioria das operações de página está disponível através dos métodos da classe `Tab`, como `tab.go_to()`, `tab.reload()` e `tab.screenshot()`, que fornecem uma API mais conveniente.","docs/pt/api/commands/runtime.md":"# Comandos de Tempo de Execução (Runtime)\n\nOs comandos de tempo de execução fornecem capacidades de execução de JavaScript e gerenciamento do ambiente de tempo de execução.\n\n## Visão Geral\n\nO módulo de comandos de tempo de execução habilita a execução de código JavaScript, inspeção de objetos e controle do ambiente de tempo de execução dentro dos contextos do navegador.\n\n::: pydoll.commands.runtime_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de tempo de execução são usados para execução de JavaScript e gerenciamento do tempo de execução:\n\n```python\nfrom pydoll.commands.runtime_commands import evaluate, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Habilitar eventos de tempo de execução\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Executar JavaScript\nresult = await evaluate(\n    connection, \n    expression=\"document.title\",\n    return_by_value=True\n)\nprint(result.value)  # Título da página\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de tempo de execução fornece funções para:\n\n### Execução de JavaScript\n- `evaluate()` - Executar expressões JavaScript\n- `call_function_on()` - Chamar funções em objetos\n- `compile_script()` - Compilar JavaScript para reutilização\n- `run_script()` - Executar scripts compilados\n\n### Gerenciamento de Objetos\n- `get_properties()` - Obter propriedades do objeto\n- `release_object()` - Liberar referências de objeto\n- `release_object_group()` - Liberar grupos de objetos\n\n### Controle de Tempo de Execução\n- `enable()` / `disable()` - Habilitar/desabilitar eventos de tempo de execução\n- `discard_console_entries()` - Limpar entradas do console\n- `set_custom_object_formatter_enabled()` - Habilitar formatadores customizados\n\n### Manipulação de Exceções\n- `set_async_call_stack_depth()` - Definir profundidade da pilha de chamadas assíncronas\n- Captura e relatório de exceções\n- Inspeção de objeto de erro\n\n## Uso Avançado\n\n### Execução de JavaScript Complexo\n```python\n# Executar JavaScript complexo com tratamento de erros\nscript = \"\"\"\ntry {\n    const elements = document.querySelectorAll('.item');\n    return Array.from(elements).map(el => ({\n        text: el.textContent,\n        href: el.href\n    }));\n} catch (error) {\n    return { error: error.message };\n}\n\"\"\"\n\nresult = await evaluate(\n    connection,\n    expression=script,\n    return_by_value=True,\n    await_promise=True\n)\n```\n\n### Inspeção de Objeto\n```python\n# Obter propriedades detalhadas do objeto\nproperties = await get_properties(\n    connection,\n    object_id=object_id,\n    own_properties=True,\n    accessor_properties_only=False\n)\n\nfor prop in properties:\n    print(f\"{prop.name}: {prop.value}\")\n```\n\n### Integração com Console\nOs comandos de tempo de execução se integram ao console do navegador:\n- Mensagens e erros do console\n- Chamadas de método da API Console\n- Formatadores de console customizados\n\n!!! note \"Considerações de Performance\"\n    A execução de JavaScript através dos comandos de tempo de execução pode ser mais lenta do que a execução nativa do navegador. Use com moderação para operações complexas.","docs/pt/api/commands/storage.md":"# Comandos de Armazenamento (Storage)\n\nOs comandos de armazenamento fornecem gerenciamento abrangente do armazenamento do navegador, incluindo cookies, localStorage, sessionStorage e IndexedDB.\n\n## Visão Geral\n\nO módulo de comandos de armazenamento permite o gerenciamento de todos os mecanismos de armazenamento do navegador, fornecendo funcionalidade para persistência e recuperação de dados.\n\n::: pydoll.commands.storage_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de armazenamento são usados para gerenciar o armazenamento do navegador em diferentes mecanismos:\n\n```python\nfrom pydoll.commands.storage_commands import get_cookies, set_cookies, clear_data_for_origin\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Obter cookies para um domínio\nconnection = ConnectionHandler()\ncookies = await get_cookies(connection, urls=[\"https://example.com\"])\n\n# Definir um novo cookie\nawait set_cookies(connection, cookies=[{\n    \"name\": \"session_id\",\n    \"value\": \"abc123\",\n    \"domain\": \"example.com\",\n    \"path\": \"/\",\n    \"httpOnly\": True,\n    \"secure\": True\n}])\n\n# Limpar todo o armazenamento para uma origem\nawait clear_data_for_origin(\n    connection,\n    origin=\"https://example.com\",\n    storage_types=\"all\"\n)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de armazenamento fornece funções para:\n\n### Gerenciamento de Cookies\n- `get_cookies()` - Obter cookies por URL ou domínio\n- `set_cookies()` - Definir novos cookies\n- `delete_cookies()` - Deletar cookies específicos\n- `clear_cookies()` - Limpar todos os cookies\n\n### Local Storage\n- `get_dom_storage_items()` - Obter itens do localStorage\n- `set_dom_storage_item()` - Definir item do localStorage\n- `remove_dom_storage_item()` - Remover item do localStorage\n- `clear_dom_storage()` - Limpar localStorage\n\n### Session Storage\n- Operações de session storage (semelhantes ao localStorage)\n- Gerenciamento de dados específicos da sessão\n- Armazenamento isolado por aba\n\n### IndexedDB\n- `get_database_names()` - Obter bancos de dados IndexedDB\n- `request_database()` - Acessar a estrutura do banco de dados\n- `request_data()` - Consultar dados do banco de dados\n- `clear_object_store()` - Limpar object stores\n\n### Cache Storage\n- `request_cache_names()` - Obter nomes de cache\n- `request_cached_response()` - Obter respostas em cache\n- `delete_cache()` - Deletar entradas de cache\n\n### Application Cache (Obsoleto)\n- Suporte a cache de aplicação legado\n- Cache baseado em manifesto\n\n## Recursos Avançados\n\n### Operações em Massa\n```python\n# Limpar todos os tipos de armazenamento para múltiplas origens\norigins = [\"https://example.com\", \"https://api.example.com\"]\nfor origin in origins:\n    await clear_data_for_origin(\n        connection,\n        origin=origin,\n        storage_types=\"cookies,local_storage,session_storage,indexeddb\"\n    )\n```\n\n### Cotas de Armazenamento\n```python\n# Obter informações de uso e cota de armazenamento\nquota_info = await get_usage_and_quota(connection, origin=\"https://example.com\")\nprint(f\"Usado: {quota_info.usage} bytes\")\nprint(f\"Cota: {quota_info.quota} bytes\")\n```\n\n### Armazenamento Cross-Origin\n```python\n# Gerenciar armazenamento entre diferentes origens\nawait set_cookies(connection, cookies=[{\n    \"name\": \"cross_site_token\",\n    \"value\": \"token123\",\n    \"domain\": \".example.com\",  # Aplica-se a todos os subdomínios\n    \"sameSite\": \"None\",\n    \"secure\": True\n}])\n```\n\n## Tipos de Armazenamento\n\nO módulo suporta vários mecanismos de armazenamento:\n\n| Tipo de Armazenamento | Persistência | Escopo | Capacidade |\n|--------------|-------------|-------|----------|\n| Cookies | Persistente | Domínio/Caminho | ~4KB por cookie |\n| localStorage | Persistente | Origem | ~5-10MB |\n| sessionStorage | Sessão | Aba | ~5-10MB |\n| IndexedDB | Persistente | Origem | Grande (GB+) |\n| Cache API | Persistente | Origem | Grande |\n\n!!! warning \"Considerações de Privacidade\"\n    Operações de armazenamento podem afetar a privacidade do usuário. Sempre lide com dados de armazenamento de forma responsável e em conformidade com as regulamentações de privacidade.","docs/pt/api/commands/target.md":"# Comandos de Alvo (Target)\n\nOs comandos de alvo (Target) gerenciam os alvos do navegador, incluindo abas, janelas e outros contextos de navegação.\n\n## Visão Geral\n\nO módulo de comandos de alvo fornece funcionalidade para criar, gerenciar e controlar os alvos do navegador, como abas, janelas pop-up e service workers.\n\n::: pydoll.commands.target_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de alvo são usados internamente pelas classes do navegador para gerenciar abas e janelas:\n\n```python\nfrom pydoll.commands.target_commands import get_targets, create_target, close_target\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Obter todos os alvos do navegador\nconnection = ConnectionHandler()\ntargets = await get_targets(connection)\n\n# Criar uma nova aba\nnew_target = await create_target(connection, url=\"https://example.com\")\n\n# Fechar um alvo\nawait close_target(connection, target_id=new_target.target_id)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de alvo fornece funções para:\n\n### Gerenciamento de Alvo\n- `get_targets()` - Listar todos os alvos do navegador\n- `create_target()` - Criar novas abas ou janelas\n- `close_target()` - Fechar alvos específicos\n- `activate_target()` - Trazer alvo para o primeiro plano\n\n### Informações do Alvo\n- `get_target_info()` - Obter informações detalhadas do alvo\n- Tipos de alvo: page, background_page, service_worker, browser\n- Estados do alvo: attached, detached, crashed\n\n### Gerenciamento de Sessão\n- `attach_to_target()` - Anexar a um alvo para controle\n- `detach_from_target()` - Desanexar de um alvo\n- `send_message_to_target()` - Enviar comandos para alvos\n\n### Contexto do Navegador\n- `create_browser_context()` - Criar contexto de navegador isolado\n- `dispose_browser_context()` - Remover contexto de navegador\n- `get_browser_contexts()` - Listar contextos de navegador\n\n## Tipos de Alvos\n\nDiferentes tipos de alvos podem ser gerenciados:\n\n### Alvos de Página\n```python\n# Criar uma nova aba\npage_target = await create_target(\n    connection,\n    url=\"https://example.com\",\n    width=1920,\n    height=1080,\n    browser_context_id=None  # Contexto padrão\n)\n```\n\n### Janelas Pop-up\n```python\n# Criar uma janela pop-up\npopup_target = await create_target(\n    connection,\n    url=\"https://popup.example.com\",\n    width=800,\n    height=600,\n    new_window=True\n)\n```\n\n### Contextos Anônimos (Incognito)\n```python\n# Criar contexto de navegador anônimo\nincognito_context = await create_browser_context(connection)\n\n# Criar aba no contexto anônimo\nincognito_tab = await create_target(\n    connection,\n    url=\"https://private.example.com\",\n    browser_context_id=incognito_context.browser_context_id\n)\n```\n\n!!! info \"Headless vs Headed: como os contextos se manifestam\"\n    Contextos de navegador são ambientes lógicos isolados. No modo **headed** (com interface gráfica), a primeira página criada dentro de um novo contexto geralmente abrirá em uma nova janela do SO. No modo **headless** (sem interface gráfica), nenhuma janela é mostrada — o isolamento permanece puramente lógico (cookies, armazenamento, cache e estado de autenticação ainda são separados por contexto). Prefira contextos em pipelines headless/CI para performance e isolamento limpo.\n\n## Recursos Avançados\n\n### Eventos de Alvo\nOs comandos de alvo funcionam com vários eventos de alvo:\n- `Target.targetCreated` - Novo alvo criado\n- `Target.targetDestroyed` - Alvo fechado\n- `Target.targetInfoChanged` - Informações do alvo atualizadas\n- `Target.targetCrashed` - Alvo falhou (crashed)\n\n### Coordenação Multi-Alvo\n```python\n# Gerenciar múltiplas abas\ntargets = await get_targets(connection)\npage_targets = [t for t in targets if t.type == \"page\"]\n\nfor target in page_targets:\n    # Realizar operações em cada aba\n    await activate_target(connection, target_id=target.target_id)\n    # ... fazer o trabalho nesta aba\n```\n\n### Isolamento de Alvo\n```python\n# Criar contexto de navegador isolado para testes\ntest_context = await create_browser_context(connection)\n\n# Todos os alvos neste contexto estão isolados\ntest_tab1 = await create_target(\n    connection, \n    url=\"https://test1.com\",\n    browser_context_id=test_context.browser_context_id\n)\n\ntest_tab2 = await create_target(\n    connection,\n    url=\"https://test2.com\", \n    browser_context_id=test_context.browser_context_id\n)\n```\n\n!!! note \"Integração com o Navegador\"\n    Os comandos de alvo são usados principalmente internamente pelas classes de navegador `Chrome` e `Edge`. As APIs de navegador de alto nível fornecem métodos mais convenientes para o gerenciamento de abas.","docs/zh/api/commands/browser.md":"# 浏览器命令\n\n浏览器命令提供对浏览器实例及其配置的底层控制。\n\n## 概述\n\n浏览器命令模块处理浏览器级别的操作，例如版本信息、目标管理和浏览器范围的设置。\n\n::: pydoll.commands.browser_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n浏览器命令通常由浏览器类在内部使用，用于管理浏览器实例：\n\n```python\nfrom pydoll.commands.browser_commands import get_version\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get browser version information\nconnection = ConnectionHandler()\nversion_info = await get_version(connection)\n```\n\n## 可用命令\n\n浏览器命令模块提供以下功能：\n\n- 获取浏览器版本和用户代理信息\n- 管理浏览器目标（标签页、窗口）\n- 控制浏览器范围的设置和权限\n- 处理浏览器生命周期事件\n\n!!! note \"Internal Usage\"\n    These commands are primarily used internally by the `Chrome` and `Edge` browser classes. Direct usage is recommended only for advanced scenarios. ","docs/zh/api/commands/dom.md":"# DOM命令\n\nDOM 命令模块提供了与网页文档对象模型交互的全面功能。\n\n## 概述\n\nDOM 命令模块是 Pydoll 中最重要的模块之一，它提供了查找、交互和操作网页上的 HTML 元素所需的所有功能。\n\n::: pydoll.commands.dom_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nDOM commands are used extensively by the `WebElement` class and element finding methods:\n\n## 用法\n\n`WebElement` 类和元素查找方法广泛使用DOM 命令：\n\n```python\nfrom pydoll.commands.dom_commands import query_selector, get_attributes\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Find element and get its attributes\nconnection = ConnectionHandler()\nnode_id = await query_selector(connection, selector=\"#username\")\nattributes = await get_attributes(connection, node_id=node_id)\n```\n\n## 主要功能\n\nDOM 命令模块提供以下功能：\n\n### 元素定位\n- `query_selector()` - 通过CSS选择器进行元素定位\n- `query_selector_all()` - 通过CSS选择器进行元素定位（查找多个元素）\n- `get_document()` - 获取document的根节点\n\n### 元素交互\n- `click_element()` - 点击元素\n- `focus_element()` - 焦点置于元素\n- `set_attribute_value()` - 设置元素属性\n- `get_attributes()` - 获取元素属性\n\n### 元素信息\n- `get_box_model()` - 获取元素位置和尺寸\n- `describe_node()` - 获取元素详细信息\n- `get_outer_html()` - 获取元素的HTML内容\n\n### DOM 操作\n- `remove_node()` - 从DOM节点中删除元素\n- `set_node_value()` - 设置元素值\n- `request_child_nodes()` - 获取子元素\n\n!!! tip \"High-Level APIs\"\n    While these commands provide powerful low-level access, most users should use the higher-level `WebElement` class methods like `click()`, `type_text()`, and `get_attribute()` which use these commands internally. ","docs/zh/api/commands/fetch.md":"# Fetch 命令\n\nFetch 命令使用 Fetch API 域提供高级网络请求处理和拦截功能。\n\n## 概述\n\nFetch 命令模块支持复杂的网络请求管理，包括请求修改、响应拦截和身份验证处理。\n\n::: pydoll.commands.fetch_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\nFetch 命令用于高级网络拦截和请求处理：\n\n```python\nfrom pydoll.commands.fetch_commands import enable, request_paused, continue_request\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable fetch domain\nconnection = ConnectionHandler()\nawait enable(connection, patterns=[{\n    \"urlPattern\": \"*\",\n    \"requestStage\": \"Request\"\n}])\n\n# Handle paused requests\nasync def handle_paused_request(request_id, request):\n    # Modify request or continue as-is\n    await continue_request(connection, request_id=request_id)\n```\n\n## 关键功能\n\nfetch 命令模块提供以下功能：\n\n### 请求拦截\n- `enable()` - 激活fetch模式\n- `disable()` - 关闭fetch模式\n- `continue_request()` - 继续请求（放行）\n- `fail_request()` - 返回特定错误请求\n\n### 修改请求\n- 修改请求headers\n- 更改请求 URL\n- 更改请求方法（GET、POST 等）\n- 修改请求body\n\n### 响应处理\n- `fulfill_request()` - 提供自定义响应\n- `get_response_body()` - 获取响应内容\n- 修改响应头\n- 响应状态码控制\n\n### 身份验证\n- `continue_with_auth()` - 处理身份验证挑战\n- 基本身份验证支持\n- 自定义身份验证流程\n\n## 高级功能\n\n### 基于模式的拦截\n\n```python\n# Intercept specific URL patterns\npatterns = [\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"},\n    {\"urlPattern\": \"*.js\", \"requestStage\": \"Response\"},\n    {\"urlPattern\": \"https://example.com/*\", \"requestStage\": \"Request\"}\n]\n\nawait enable(connection, patterns=patterns)\n```\n\n### 请求修改\n```python\n# Modify intercepted requests\nasync def modify_request(request_id, request):\n    # Add authentication header\n    headers = request.headers.copy()\n    headers[\"Authorization\"] = \"Bearer token123\"\n    \n    # Continue with modified headers\n    await continue_request(\n        connection,\n        request_id=request_id,\n        headers=headers\n    )\n```\n\n### 响应模拟\n```python\n# Mock API responses\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers=[\n        {\"name\": \"Content-Type\", \"value\": \"application/json\"},\n        {\"name\": \"Access-Control-Allow-Origin\", \"value\": \"*\"}\n    ],\n    body='{\"status\": \"success\", \"data\": {\"mocked\": true}}'\n)\n```\n\n### 身份验证处理\n```python\n# Handle authentication challenges\nawait continue_with_auth(\n    connection,\n    request_id=request_id,\n    auth_challenge_response={\n        \"response\": \"ProvideCredentials\",\n        \"username\": \"user\",\n        \"password\": \"pass\"\n    }\n)\n```\n\n## 请求阶段\n\nFetch 命令可以在不同阶段拦截请求：\n\n| 阶段 | 描述 | 用例 |\n|-------|-------------|-----------|\n| 请求 | 请求发送前 | 修改标头、URL 和方法 |\n| 响应 | 收到响应后 | 模拟响应，修改内容 |\n\n## 错误处理\n\n```python\n# Fail requests with specific errors\nawait fail_request(\n    connection,\n    request_id=request_id,\n    error_reason=\"ConnectionRefused\"  # or \"AccessDenied\", \"TimedOut\", etc.\n)\n```\n\n## 与网络命令集成\n\nFetch 命令与网络命令协同工作，但提供更精细的控制：\n\n- **网络命令**：更广泛的网络监控和控制\n- **Fetch 命令**：特定的请求/响应拦截和修改\n\n!!! tip \"Performance Considerations\"\n    Fetch interception can impact page loading performance. Use specific URL patterns and disable when not needed to minimize overhead. ","docs/zh/api/commands/index.md":"# 命令概述\n\n命令模块提供了与Chrome DevTools协议(CDP)域交互的高级接口。每个命令模块对应一个特定的CDP域，并提供执行各种浏览器操作的方法。\n\n## 可用命令模块\n\n### 浏览器命令\n- **模块**: `browser_commands.py`\n- **用途**: 浏览器级别操作和窗口管理\n- **文档**: [浏览器命令](browser.md)\n\n### DOM命令\n- **模块**: `dom_commands.py`\n- **用途**: DOM树操作和元素操作\n- **文档**: [DOM命令](dom.md)\n\n### 输入命令\n- **模块**: `input_commands.py`\n- **用途**: 输入事件模拟(键盘、鼠标、触摸)\n- **文档**: [输入命令](input.md)\n\n### 网络命令\n- **模块**: `network_commands.py`\n- **用途**: 网络监控和请求拦截\n- **文档**: [网络命令](network.md)\n\n### 页面命令\n- **模块**: `page_commands.py`\n- **用途**: 页面生命周期管理和导航\n- **文档**: [页面命令](page.md)\n\n### 运行时命令\n- **模块**: `runtime_commands.py`\n- **用途**: JavaScript执行和运行时管理\n- **文档**: [运行时命令](runtime.md)\n\n### 存储命令\n- **模块**: `storage_commands.py`\n- **用途**: 浏览器存储访问(cookies、本地存储等)\n- **文档**: [存储命令](storage.md)\n\n### 目标命令\n- **模块**: `target_commands.py`\n- **用途**: 目标管理和标签页操作\n- **文档**: [目标命令](target.md)\n\n### 获取命令\n- **模块**: `fetch_commands.py`\n- **用途**: 网络请求拦截和修改\n- **文档**: [获取命令](fetch.md)\n\n## 使用模式\n\n命令通常通过浏览器或标签页实例访问：\n\n```python\nfrom pydoll.browser.chromium import Chrome\n\n# 初始化浏览器\nbrowser = Chrome()\nawait browser.start()\n\n# 获取活动标签页\ntab = await browser.get_active_tab()\n\n# 通过标签页使用命令\nawait tab.navigate(\"https://example.com\")\nelement = await tab.find(id=\"button\")\nawait element.click()\n```\n\n## 命令结构\n\n每个命令模块遵循一致的模式：\n- **静态方法**: 用于直接命令执行\n- **类型提示**: 使用协议类型的完整类型安全\n- **错误处理**: 对CDP错误的正确异常处理\n- **文档**: 包含示例的全面文档字符串 ","docs/zh/api/commands/input.md":"# 输入命令\n\n输入命令处理鼠标和键盘交互，提供真人仿真的输入模拟。\n\n## 概述\n\n输入命令模块提供模拟用户输入的功能，包括鼠标移动、点击、键盘输入和按键操作。\n\n::: pydoll.commands.input_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n输入命令由元素交互方法使用，可直接用于高级输入场景：\n\n```python\nfrom pydoll.commands.input_commands import dispatch_mouse_event, dispatch_key_event\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Simulate mouse click\nconnection = ConnectionHandler()\nawait dispatch_mouse_event(\n    connection, \n    type=\"mousePressed\", \n    x=100, \n    y=200, \n    button=\"left\"\n)\n\n# Simulate keyboard typing\nawait dispatch_key_event(\n    connection,\n    type=\"keyDown\",\n    key=\"Enter\"\n)\n```\n\n## 主要功能\n\n输入命令模块提供以下函数：\n\n### 鼠标事件\n- `dispatch_mouse_event()` - 鼠标点击、移动和滚轮事件\n- 鼠标按键状态（左键、右键、中键）\n- 基于坐标的定位\n- 拖放操作\n\n\n### 键盘事件\n- `dispatch_key_event()` - 键盘按下和释放事件\n- `insert_text()` - 直接插入文本\n- 特殊键处理（Enter、Tab、箭头键等）\n- 修饰键（Ctrl、Alt、Shift）\n\n\n### 触摸事件\n- 触摸屏模拟\n- 多点触控手势\n- 触摸坐标和压力控制\n\n## 仿真行为\n\n输入命令支持仿真行为模式：\n\n- 平滑的鼠标移动曲线\n- 真实的打字速度和模式\n- 操作之间随机的微延迟\n- 压力感应触摸事件\n\n!!! tip \"Element Methods\"\n    For most use cases, use the higher-level element methods like `element.click()` and `element.type_text()` which provide a more convenient API and handle common scenarios automatically. ","docs/zh/api/commands/network.md":"# 网络命令\n\n网络命令提供对网络请求、响应和浏览器网络行为的全面控制。\n\n## 概述\n\n网络命令模块支持请求拦截、响应修改、Cookie 管理和网络监控功能。\n\n::: pydoll.commands.network_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n网络命令用于请求拦截和网络监控等高级场景：\n\n```python\nfrom pydoll.commands.network_commands import enable, set_request_interception\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable network monitoring\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Enable request interception\nawait set_request_interception(connection, patterns=[{\"urlPattern\": \"*\"}])\n```\n\n## 主要功能\n\n网络命令模块提供以下功能：\n\n\n### 请求管理\n- `enable()` / `disable()` - 启用/禁用网络监控\n- `set_request_interception()` - 拦截并修改请求\n- `continue_intercepted_request()` - 继续或修改拦截的请求\n- `get_request_post_data()` - 获取请求体数据\n\n\n### 响应处理\n- `get_response_body()` - 获取响应内容\n- `fulfill_request()` - 提供自定义响应\n- `fail_request()` - 模拟网络异常\n\n### Cookie 管理\n- `get_cookies()` - 获取浏览器 Cookie\n- `set_cookies()` - 设置浏览器 Cookie\n- `delete_cookies()` - 删除指定 Cookie\n- `clear_browser_cookies()` - 清除所有 Cookie\n\n### 缓存控制\n- `clear_browser_cache()` - 清除浏览器缓存\n- `set_cache_disabled()` - 禁用浏览器缓存\n- `get_response_body_for_interception()` - 获取缓存的响应\n\n### 安全和标头\n- `set_user_agent_override()` - 覆盖用户代理\n- `set_extra_http_headers()` - 添加自定义标头\n- `emulate_network_conditions()` - 模拟网络连接状况\n\n## 高级用例\n\n### 请求拦截\n\n```python\n# 拦截修改请求\nawait set_request_interception(connection, patterns=[\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"}\n])\n\n# 拦截请求处理\nasync def handle_request(request):\n    if \"api/login\" in request.url:\n        # 修改请求头\n        headers = request.headers.copy()\n        headers[\"Authorization\"] = \"Bearer token\"\n        await continue_intercepted_request(\n            connection, \n            request_id=request.request_id,\n            headers=headers\n        )\n```\n\n### 响应模拟\n```python\n# 模拟 API 响应\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers={\"Content-Type\": \"application/json\"},\n    body='{\"status\": \"success\"}'\n)\n```\n\n!!! warning \"Performance Impact\"\n    Network interception can impact page loading performance. Use selectively and disable when not needed. ","docs/zh/api/commands/page.md":"# 页面命令\n\n页面命令处理页面导航、生命周期事件和页面操作。\n\n## 概述\n\n页面命令模块提供页面间导航、管理页面生命周期、处理 JavaScript 执行以及控制页面行为的功能。\n\n::: pydoll.commands.page_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n“Tab”类广泛使用页面命令进行导航和页面管理：\n\n```python\nfrom pydoll.commands.page_commands import navigate, reload, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Navigate to a URL\nconnection = ConnectionHandler()\nawait enable(connection)  # Enable page events\nawait navigate(connection, url=\"https://example.com\")\n\n# Reload the page\nawait reload(connection)\n```\n\n## 关键功能\n\n页面命令模块提供以下函数：\n\n### 导航\n- `navigate()` - 访问URL\n- `reload()` - 重新加载当前页面\n- `go_back()` - 后退一步\n- `go_forward()` - 前进一步\n- `stop_loading()` - 停止页面加载\n\n### 页面生命周期\n- `enable()` / `disable()` - 启用/禁用页面事件\n- `get_frame_tree()` - 获取页面框架结构\n- `get_navigation_history()` - 获取导航历史记录\n\n### 内容管理\n- `get_resource_content()` - 获取页面资源内容\n- `search_in_resource()` - 在页面资源内搜索\n- `set_document_content()` - 设置页面 HTML 内容\n\n### 截图和 PDF\n- `capture_screenshot()` - 页面截图\n- `print_to_pdf()` - 将页面保存为PDF\n- `capture_snapshot()` - 页面快照\n\n### JavaScript 执行\n- `add_script_to_evaluate_on_new_document()` - 添加启动脚本(在网页加载前注入js)\n- `remove_script_to_evaluate_on_new_document()` - 移除启动脚本\n\n### 页面设置\n- `set_lifecycle_events_enabled()` - 控制生命周期事件\n- `set_ad_blocking_enabled()` - 启用/禁用广告拦截\n- `set_bypass_csp()` - 绕过内容安全策略\n\n## 高级功能\n### 框架管理\n\n```python\n# Get all frames in the page\nframe_tree = await get_frame_tree(connection)\nfor frame in frame_tree.child_frames:\n    print(f\"Frame: {frame.frame.url}\")\n```\n\n### 资源拦截\n```python\n# Get resource content\ncontent = await get_resource_content(\n    connection, \n    frame_id=frame_id, \n    url=\"https://example.com/script.js\"\n)\n```\n\n### 页面事件\n页面命令可与各种页面事件配合使用：\n- `Page.loadEventFired` - 页面加载完成\n- `Page.domContentEventFired` - DOM 内容已加载\n- `Page.frameNavigated` - 框架访问结束\n- `Page.frameStartedLoading` - 框架加载开始\n\n\n!!! 小提示“Tab 类集成”\n大多数页面操作都可以通过 `Tab` 类方法实现，例如 `tab.go_to()`、`tab.reload()` 和 `tab.screenshot()`，这些方法提供了更便捷的 API。","docs/zh/api/commands/runtime.md":"# 运行时命令\n\n运行时命令提供 JavaScript 执行功能和运行时环境管理。\n\n## 概述\n\n运行时命令模块支持在浏览器上下文中执行 JavaScript 代码、检查对象以及控制运行时环境。\n\n::: pydoll.commands.runtime_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n运行时命令用于 JavaScript 执行和运行时管理：\n\n```python\nfrom pydoll.commands.runtime_commands import evaluate, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable runtime events\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Execute JavaScript\nresult = await evaluate(\n    connection, \n    expression=\"document.title\",\n    return_by_value=True\n)\nprint(result.value)  # Page title\n```\n\n## 主要功能\n\n运行时命令模块提供以下功能：\n\n### JavaScript 执行\n- `evaluate()` - 执行 JavaScript 表达式\n- `call_function_on()` - 调用对象上的函数\n- `compile_script()` - 编译 JavaScript 以供复用\n- `run_script()` - 运行已编译的脚本\n\n### 对象管理\n- `get_properties()` - 获取对象属性\n- `release_object()` - 释放对象引用\n- `release_object_group()` - 释放对象组\n\n### 运行时控制\n- `enable()` / `disable()` - 启用/禁用运行时事件\n- `discard_console_entries()` - 清除控制台记录\n- `set_custom_object_formatter_enabled()` - 启用自定义格式化程序\n\n### 异常处理\n- `set_async_call_stack_depth()` - 设置调用堆栈深度\n- 异常捕获和报告\n- 错误对象检查\n\n## 高级用法\n\n### 复杂的 JavaScript 执行\n\n```python\n# 执行带有错误处理的复杂 JavaScript\nscript = \"\"\"\ntry {\n    const elements = document.querySelectorAll('.item');\n    return Array.from(elements).map(el => ({\n        text: el.textContent,\n        href: el.href\n    }));\n} catch (error) {\n    return { error: error.message };\n}\n\"\"\"\n\nresult = await evaluate(\n    connection,\n    expression=script,\n    return_by_value=True,\n    await_promise=True\n)\n```\n\n### 对象检查\n```python\n# Get detailed object properties\nproperties = await get_properties(\n    connection,\n    object_id=object_id,\n    own_properties=True,\n    accessor_properties_only=False\n)\n\nfor prop in properties:\n    print(f\"{prop.name}: {prop.value}\")\n```\n\n### 控制台集成\n运行时命令与浏览器控制台集成：\n- 控制台消息和错误\n- 控制台 API 方法调用\n- 自定义控制台格式化程序\n\n!!! note \"Performance Considerations\"\n    JavaScript execution through runtime commands can be slower than native browser execution. Use judiciously for complex operations. ","docs/zh/api/commands/storage.md":"# 存储命令\n\n存储命令提供全面的浏览器存储管理，包括 Cookie、localStorage、sessionStorage 和 IndexedDB。\n\n## 概述\n\n存储命令模块支持管理所有浏览器存储机制，提供数据持久化和检索功能。\n\n::: pydoll.commands.storage_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n存储命令用于跨不同机制管理浏览器存储：\n\n```python\nfrom pydoll.commands.storage_commands import get_cookies, set_cookies, clear_data_for_origin\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get cookies for a domain\nconnection = ConnectionHandler()\ncookies = await get_cookies(connection, urls=[\"https://example.com\"])\n\n# Set a new cookie\nawait set_cookies(connection, cookies=[{\n    \"name\": \"session_id\",\n    \"value\": \"abc123\",\n    \"domain\": \"example.com\",\n    \"path\": \"/\",\n    \"httpOnly\": True,\n    \"secure\": True\n}])\n\n# Clear all storage for an origin\nawait clear_data_for_origin(\n    connection,\n    origin=\"https://example.com\",\n    storage_types=\"all\"\n)\n```\n\n## 关键功能\n\n存储命令模块提供以下函数：\n\n### Cookie 管理\n- `get_cookies()` - 通过 URL 或域名获取 Cookie\n- `set_cookies()` - 设置新 Cookie\n- `delete_cookies()` - 删除特定 Cookie\n- `clear_cookies()` - 清除所有 Cookie\n\n\n### 本地存储\n- `get_dom_storage_items()` - 获取localStorage\n- `set_dom_storage_item()` - 设置localStorage\n- `remove_dom_storage_item()` - 移除localStorage\n- `clear_dom_storage()` - 清除localStorage\n\n### 会话存储\n- 会话存储操作（类似于本地存储）\n- 特定会话的数据管理\n- 选项卡隔离存储\n\n### IndexedDB\n- `get_database_names()` - 获取 IndexedDB 数据库\n- `request_database()` - 访问数据库结构\n- `request_data()` - 查询数据库数据\n- `clear_object_store()` - 清除对象存储\n\n### 缓存存储\n- `request_cache_names()` - 获取缓存名称\n- `request_cached_response()` - 获取缓存响应\n- `delete_cache()` - 删除缓存条目\n\n### 应用程序缓存（已弃用）\n- 支持旧版应用程序缓存\n- 基于清单的缓存\n\n## 高级功能\n\n### 批量操作\n```python\n# Clear all storage types for multiple origins\norigins = [\"https://example.com\", \"https://api.example.com\"]\nfor origin in origins:\n    await clear_data_for_origin(\n        connection,\n        origin=origin,\n        storage_types=\"cookies,local_storage,session_storage,indexeddb\"\n    )\n```\n\n### 存储配额\n```python\n# Get storage quota information\nquota_info = await get_usage_and_quota(connection, origin=\"https://example.com\")\nprint(f\"Used: {quota_info.usage} bytes\")\nprint(f\"Quota: {quota_info.quota} bytes\")\n```\n\n### Cross-Origin 存储\n```python\n# Manage storage across different origins\nawait set_cookies(connection, cookies=[{\n    \"name\": \"cross_site_token\",\n    \"value\": \"token123\",\n    \"domain\": \".example.com\",  # Applies to all subdomains\n    \"sameSite\": \"None\",\n    \"secure\": True\n}])\n```\n\n## 存储类型\n\n该模块支持多种存储机制：\n\n| 存储类型 | 持久性 | 范围 | 容量 |\n|-----------|----------|----------|----------|\n| Cookies | 持久性 | 域/路径 | 每个 cookie 约 4KB |\n| localStorage | 持久性 | 来源 | 约 5-10MB |\n| sessionStorage | 会话 | Tab | 约 5-10MB |\n| IndexedDB | 持久性 | 来源 | 大容量 (GB+) |\n| Cache API | 持久性 | 来源 | 大容量 |\n\n!!! warning \"Privacy Considerations\"\n    Storage operations can affect user privacy. Always handle storage data responsibly and in compliance with privacy regulations. ","docs/zh/api/commands/target.md":"# Target命令\n\nTarget命令管理浏览器目标，包括标签页、窗口和其他浏览上下文。\n\n## 概述\n\nTarget命令模块提供创建、管理和控制浏览器目标（例如标签页、弹出窗口和服务工作线程）的功能。\n\n::: pydoll.commands.target_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\nTarget命令由浏览器类内部使用，用于管理标签页和窗口：\n\n```python\nfrom pydoll.commands.target_commands import get_targets, create_target, close_target\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get all browser targets\nconnection = ConnectionHandler()\ntargets = await get_targets(connection)\n\n# Create a new tab\nnew_target = await create_target(connection, url=\"https://example.com\")\n\n# Close a target\nawait close_target(connection, target_id=new_target.target_id)\n```\n\n## 主要功能\n\nTarget命令模块提供以下功能：\n\n\n### Target管理\n- `get_targets()` - 列出所有浏览器Target\n- `create_target()` - 创建新的标签页或窗口\n- `close_target()` - 关闭特定Target\n- `activate_target()` - 将Target置于前台\n\n### Target 信息\n- `get_target_info()` - 获取详细的Target信息\n- Target类型：页面、background_page、service_worker、浏览器\n- Target状态：已连接、已分离、崩溃\n\n### Session 管理\n- `attach_to_target()` - 附加到Target进行控制\n- `detach_from_target()` - 分离Target\n- `send_message_to_target()` - 向Target发送命令\n\n### 浏览器上下文\n- `create_browser_context()` - 创建独立的浏览器上下文\n- `dispose_browser_context()` - 移除浏览器上下文\n- `get_browser_contexts()` - 列出浏览器上下文\n\n## 目标类型\n\n可以管理不同类型的目标：\n\n### 页面 Targets\n```python\n# Create a new tab\npage_target = await create_target(\n    connection,\n    url=\"https://example.com\",\n    width=1920,\n    height=1080,\n    browser_context_id=None  # Default context\n)\n```\n\n### 弹窗\n```python\n# Create a popup window\npopup_target = await create_target(\n    connection,\n    url=\"https://popup.example.com\",\n    width=800,\n    height=600,\n    new_window=True\n)\n```\n\n### 无痕上下文\n```python\n# Create incognito browser context\nincognito_context = await create_browser_context(connection)\n\n# Create tab in incognito context\nincognito_tab = await create_target(\n    connection,\n    url=\"https://private.example.com\",\n    browser_context_id=incognito_context.browser_context_id\n)\n```\n\n!!! info \"Headless 与 Headed：上下文如何呈现\"\n    浏览器上下文是逻辑上的隔离环境。在 Headed 模式下，在新的上下文中创建的第一个页面通常会打开一个新的系统窗口。 在 Headless 模式下不会显示窗口——隔离依然存在于后台（cookies、storage、缓存与认证状态仍按上下文分离）。在 CI/Headless 环境中优先使用上下文以获得更高性能与更干净的隔离。\n\n## 高级特性\n\n### 目标事件\nTarget命令可与各种Target事件配合使用：\n- `Target.targetCreated` - 新Target创建\n- `Target.targetDestroyed` - Target关闭\n- `Target.targetInfoChanged` - Target信息更新\n- `Target.targetCrashed` - Target崩溃\n\n### 多Target协调\n\n```python\n# Manage multiple tabs\ntargets = await get_targets(connection)\npage_targets = [t for t in targets if t.type == \"page\"]\n\nfor target in page_targets:\n    # Perform operations on each tab\n    await activate_target(connection, target_id=target.target_id)\n    # ... do work in this tab\n```\n\n### Target 隔离\n```python\n# Create isolated browser context for testing\ntest_context = await create_browser_context(connection)\n\n# All targets in this context are isolated\ntest_tab1 = await create_target(\n    connection, \n    url=\"https://test1.com\",\n    browser_context_id=test_context.browser_context_id\n)\n\ntest_tab2 = await create_target(\n    connection,\n    url=\"https://test2.com\", \n    browser_context_id=test_context.browser_context_id\n)\n```\n\n!!! note \"Browser Integration\"\n    Target commands are primarily used internally by the `Chrome` and `Edge` browser classes. The high-level browser APIs provide more convenient methods for tab management. "},"files":{"docs/en/api/commands/browser.md":"# Browser Commands\n\nBrowser commands provide low-level control over browser instances and their configuration.\n\n## Overview\n\nThe browser commands module handles browser-level operations such as version information, target management, and browser-wide settings.\n\n::: pydoll.commands.browser_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nBrowser commands are typically used internally by browser classes to manage browser instances:\n\n```python\nfrom pydoll.commands.browser_commands import get_version\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get browser version information\nconnection = ConnectionHandler()\nversion_info = await get_version(connection)\n```\n\n## Available Commands\n\nThe browser commands module provides functions for:\n\n- Getting browser version and user agent information\n- Managing browser targets (tabs, windows)\n- Controlling browser-wide settings and permissions\n- Handling browser lifecycle events\n\n!!! note \"Internal Usage\"\n    These commands are primarily used internally by the `Chrome` and `Edge` browser classes. Direct usage is recommended only for advanced scenarios. ","docs/en/api/commands/dom.md":"# DOM Commands\n\nDOM commands provide comprehensive functionality for interacting with the Document Object Model of web pages.\n\n## Overview\n\nThe DOM commands module is one of the most important modules in Pydoll, providing all the functionality needed to find, interact with, and manipulate HTML elements on web pages.\n\n::: pydoll.commands.dom_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nDOM commands are used extensively by the `WebElement` class and element finding methods:\n\n```python\nfrom pydoll.commands.dom_commands import query_selector, get_attributes\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Find element and get its attributes\nconnection = ConnectionHandler()\nnode_id = await query_selector(connection, selector=\"#username\")\nattributes = await get_attributes(connection, node_id=node_id)\n```\n\n## Key Functionality\n\nThe DOM commands module provides functions for:\n\n### Element Finding\n- `query_selector()` - Find single element by CSS selector\n- `query_selector_all()` - Find multiple elements by CSS selector\n- `get_document()` - Get the document root node\n\n### Element Interaction\n- `click_element()` - Click on elements\n- `focus_element()` - Focus elements\n- `set_attribute_value()` - Set element attributes\n- `get_attributes()` - Get element attributes\n\n### Element Information\n- `get_box_model()` - Get element positioning and dimensions\n- `describe_node()` - Get detailed element information\n- `get_outer_html()` - Get element HTML content\n\n### DOM Manipulation\n- `remove_node()` - Remove elements from DOM\n- `set_node_value()` - Set element values\n- `request_child_nodes()` - Get child elements\n\n!!! tip \"High-Level APIs\"\n    While these commands provide powerful low-level access, most users should use the higher-level `WebElement` class methods like `click()`, `type_text()`, and `get_attribute()` which use these commands internally. ","docs/en/api/commands/fetch.md":"# Fetch Commands\n\nFetch commands provide advanced network request handling and interception capabilities using the Fetch API domain.\n\n## Overview\n\nThe fetch commands module enables sophisticated network request management, including request modification, response interception, and authentication handling.\n\n::: pydoll.commands.fetch_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nFetch commands are used for advanced network interception and request handling:\n\n```python\nfrom pydoll.commands.fetch_commands import enable, request_paused, continue_request\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable fetch domain\nconnection = ConnectionHandler()\nawait enable(connection, patterns=[{\n    \"urlPattern\": \"*\",\n    \"requestStage\": \"Request\"\n}])\n\n# Handle paused requests\nasync def handle_paused_request(request_id, request):\n    # Modify request or continue as-is\n    await continue_request(connection, request_id=request_id)\n```\n\n## Key Functionality\n\nThe fetch commands module provides functions for:\n\n### Request Interception\n- `enable()` - Enable fetch domain with patterns\n- `disable()` - Disable fetch domain\n- `continue_request()` - Continue intercepted requests\n- `fail_request()` - Fail requests with specific errors\n\n### Request Modification\n- Modify request headers\n- Change request URLs\n- Alter request methods (GET, POST, etc.)\n- Modify request bodies\n\n### Response Handling\n- `fulfill_request()` - Provide custom responses\n- `get_response_body()` - Get response content\n- Response header modification\n- Response status code control\n\n### Authentication\n- `continue_with_auth()` - Handle authentication challenges\n- Basic authentication support\n- Custom authentication flows\n\n## Advanced Features\n\n### Pattern-Based Interception\n```python\n# Intercept specific URL patterns\npatterns = [\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"},\n    {\"urlPattern\": \"*.js\", \"requestStage\": \"Response\"},\n    {\"urlPattern\": \"https://example.com/*\", \"requestStage\": \"Request\"}\n]\n\nawait enable(connection, patterns=patterns)\n```\n\n### Request Modification\n```python\n# Modify intercepted requests\nasync def modify_request(request_id, request):\n    # Add authentication header\n    headers = request.headers.copy()\n    headers[\"Authorization\"] = \"Bearer token123\"\n    \n    # Continue with modified headers\n    await continue_request(\n        connection,\n        request_id=request_id,\n        headers=headers\n    )\n```\n\n### Response Mocking\n```python\n# Mock API responses\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers=[\n        {\"name\": \"Content-Type\", \"value\": \"application/json\"},\n        {\"name\": \"Access-Control-Allow-Origin\", \"value\": \"*\"}\n    ],\n    body='{\"status\": \"success\", \"data\": {\"mocked\": true}}'\n)\n```\n\n### Authentication Handling\n```python\n# Handle authentication challenges\nawait continue_with_auth(\n    connection,\n    request_id=request_id,\n    auth_challenge_response={\n        \"response\": \"ProvideCredentials\",\n        \"username\": \"user\",\n        \"password\": \"pass\"\n    }\n)\n```\n\n## Request Stages\n\nFetch commands can intercept requests at different stages:\n\n| Stage | Description | Use Cases |\n|-------|-------------|-----------|\n| Request | Before request is sent | Modify headers, URL, method |\n| Response | After response received | Mock responses, modify content |\n\n## Error Handling\n\n```python\n# Fail requests with specific errors\nawait fail_request(\n    connection,\n    request_id=request_id,\n    error_reason=\"ConnectionRefused\"  # or \"AccessDenied\", \"TimedOut\", etc.\n)\n```\n\n## Integration with Network Commands\n\nFetch commands work alongside network commands but provide more granular control:\n\n- **Network Commands**: Broader network monitoring and control\n- **Fetch Commands**: Specific request/response interception and modification\n\n!!! tip \"Performance Considerations\"\n    Fetch interception can impact page loading performance. Use specific URL patterns and disable when not needed to minimize overhead. ","docs/en/api/commands/index.md":"# Commands Overview\n\nThe Commands module provides high-level interfaces for interacting with Chrome DevTools Protocol (CDP) domains. Each command module corresponds to a specific CDP domain and provides methods to execute various browser operations.\n\n## Available Command Modules\n\n### Browser Commands\n- **Module**: `browser_commands.py`\n- **Purpose**: Browser-level operations and window management\n- **Documentation**: [Browser Commands](browser.md)\n\n### DOM Commands\n- **Module**: `dom_commands.py`\n- **Purpose**: DOM tree manipulation and element operations\n- **Documentation**: [DOM Commands](dom.md)\n\n### Input Commands\n- **Module**: `input_commands.py`\n- **Purpose**: Input event simulation (keyboard, mouse, touch)\n- **Documentation**: [Input Commands](input.md)\n\n### Network Commands\n- **Module**: `network_commands.py`\n- **Purpose**: Network monitoring and request interception\n- **Documentation**: [Network Commands](network.md)\n\n### Page Commands\n- **Module**: `page_commands.py`\n- **Purpose**: Page lifecycle management and navigation\n- **Documentation**: [Page Commands](page.md)\n\n### Runtime Commands\n- **Module**: `runtime_commands.py`\n- **Purpose**: JavaScript execution and runtime management\n- **Documentation**: [Runtime Commands](runtime.md)\n\n### Storage Commands\n- **Module**: `storage_commands.py`\n- **Purpose**: Browser storage access (cookies, local storage, etc.)\n- **Documentation**: [Storage Commands](storage.md)\n\n### Target Commands\n- **Module**: `target_commands.py`\n- **Purpose**: Target management and tab operations\n- **Documentation**: [Target Commands](target.md)\n\n### Fetch Commands\n- **Module**: `fetch_commands.py`\n- **Purpose**: Network request interception and modification\n- **Documentation**: [Fetch Commands](fetch.md)\n\n## Usage Pattern\n\nCommands are typically accessed through the browser or tab instances:\n\n```python\nfrom pydoll.browser.chromium import Chrome\n\n# Initialize browser\nbrowser = Chrome()\nawait browser.start()\n\n# Get active tab\ntab = await browser.get_active_tab()\n\n# Use commands through the tab\nawait tab.navigate(\"https://example.com\")\nelement = await tab.find(id=\"button\")\nawait element.click()\n```\n\n## Command Structure\n\nEach command module follows a consistent pattern:\n- **Static methods**: For direct command execution\n- **Type hints**: Full type safety with protocol types\n- **Error handling**: Proper exception handling for CDP errors\n- **Documentation**: Comprehensive docstrings with examples ","docs/en/api/commands/input.md":"# Input Commands\n\nInput commands handle mouse and keyboard interactions, providing human-like input simulation.\n\n## Overview\n\nThe input commands module provides functionality for simulating user input including mouse movements, clicks, keyboard typing, and key presses.\n\n::: pydoll.commands.input_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nInput commands are used by element interaction methods and can be used directly for advanced input scenarios:\n\n```python\nfrom pydoll.commands.input_commands import dispatch_mouse_event, dispatch_key_event\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Simulate mouse click\nconnection = ConnectionHandler()\nawait dispatch_mouse_event(\n    connection, \n    type=\"mousePressed\", \n    x=100, \n    y=200, \n    button=\"left\"\n)\n\n# Simulate keyboard typing\nawait dispatch_key_event(\n    connection,\n    type=\"keyDown\",\n    key=\"Enter\"\n)\n```\n\n## Key Functionality\n\nThe input commands module provides functions for:\n\n### Mouse Events\n- `dispatch_mouse_event()` - Mouse clicks, movements, and wheel events\n- Mouse button states (left, right, middle)\n- Coordinate-based positioning\n- Drag and drop operations\n\n### Keyboard Events\n- `dispatch_key_event()` - Key press and release events\n- `insert_text()` - Direct text insertion\n- Special key handling (Enter, Tab, Arrow keys, etc.)\n- Modifier keys (Ctrl, Alt, Shift)\n\n### Touch Events\n- Touch screen simulation\n- Multi-touch gestures\n- Touch coordinates and pressure\n\n## Human-like Behavior\n\nThe input commands support human-like behavior patterns:\n\n- Natural mouse movement curves\n- Realistic typing speeds and patterns\n- Random micro-delays between actions\n- Pressure-sensitive touch events\n\n!!! tip \"Element Methods\"\n    For most use cases, use the higher-level element methods like `element.click()` and `element.type_text()` which provide a more convenient API and handle common scenarios automatically. ","docs/en/api/commands/network.md":"# Network Commands\n\nNetwork commands provide comprehensive control over network requests, responses, and browser networking behavior.\n\n## Overview\n\nThe network commands module enables request interception, response modification, cookie management, and network monitoring capabilities.\n\n::: pydoll.commands.network_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nNetwork commands are used for advanced scenarios like request interception and network monitoring:\n\n```python\nfrom pydoll.commands.network_commands import enable, set_request_interception\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable network monitoring\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Enable request interception\nawait set_request_interception(connection, patterns=[{\"urlPattern\": \"*\"}])\n```\n\n## Key Functionality\n\nThe network commands module provides functions for:\n\n### Request Management\n- `enable()` / `disable()` - Enable/disable network monitoring\n- `set_request_interception()` - Intercept and modify requests\n- `continue_intercepted_request()` - Continue or modify intercepted requests\n- `get_request_post_data()` - Get request body data\n\n### Response Handling\n- `get_response_body()` - Get response content\n- `fulfill_request()` - Provide custom responses\n- `fail_request()` - Simulate network failures\n\n### Cookie Management\n- `get_cookies()` - Get browser cookies\n- `set_cookies()` - Set browser cookies\n- `delete_cookies()` - Delete specific cookies\n- `clear_browser_cookies()` - Clear all cookies\n\n### Cache Control\n- `clear_browser_cache()` - Clear browser cache\n- `set_cache_disabled()` - Disable browser cache\n- `get_response_body_for_interception()` - Get cached responses\n\n### Security & Headers\n- `set_user_agent_override()` - Override user agent\n- `set_extra_http_headers()` - Add custom headers\n- `emulate_network_conditions()` - Simulate network conditions\n\n## Advanced Use Cases\n\n### Request Interception\n```python\n# Intercept and modify requests\nawait set_request_interception(connection, patterns=[\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"}\n])\n\n# Handle intercepted request\nasync def handle_request(request):\n    if \"api/login\" in request.url:\n        # Modify request headers\n        headers = request.headers.copy()\n        headers[\"Authorization\"] = \"Bearer token\"\n        await continue_intercepted_request(\n            connection, \n            request_id=request.request_id,\n            headers=headers\n        )\n```\n\n### Response Mocking\n```python\n# Mock API responses\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers={\"Content-Type\": \"application/json\"},\n    body='{\"status\": \"success\"}'\n)\n```\n\n!!! warning \"Performance Impact\"\n    Network interception can impact page loading performance. Use selectively and disable when not needed. ","docs/en/api/commands/page.md":"# Page Commands\n\nPage commands handle page navigation, lifecycle events, and page-level operations.\n\n## Overview\n\nThe page commands module provides functionality for navigating between pages, managing page lifecycle, handling JavaScript execution, and controlling page behavior.\n\n::: pydoll.commands.page_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nPage commands are used extensively by the `Tab` class for navigation and page management:\n\n```python\nfrom pydoll.commands.page_commands import navigate, reload, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Navigate to a URL\nconnection = ConnectionHandler()\nawait enable(connection)  # Enable page events\nawait navigate(connection, url=\"https://example.com\")\n\n# Reload the page\nawait reload(connection)\n```\n\n## Key Functionality\n\nThe page commands module provides functions for:\n\n### Navigation\n- `navigate()` - Navigate to URLs\n- `reload()` - Reload current page\n- `go_back()` - Navigate back in history\n- `go_forward()` - Navigate forward in history\n- `stop_loading()` - Stop page loading\n\n### Page Lifecycle\n- `enable()` / `disable()` - Enable/disable page events\n- `get_frame_tree()` - Get page frame structure\n- `get_navigation_history()` - Get navigation history\n\n### Content Management\n- `get_resource_content()` - Get page resource content\n- `search_in_resource()` - Search within page resources\n- `set_document_content()` - Set page HTML content\n\n### Screenshots & PDF\n- `capture_screenshot()` - Take page screenshots\n- `print_to_pdf()` - Generate PDF from page\n- `capture_snapshot()` - Capture page snapshots\n\n### JavaScript Execution\n- `add_script_to_evaluate_on_new_document()` - Add startup scripts\n- `remove_script_to_evaluate_on_new_document()` - Remove startup scripts\n\n### Page Settings\n- `set_lifecycle_events_enabled()` - Control lifecycle events\n- `set_ad_blocking_enabled()` - Enable/disable ad blocking\n- `set_bypass_csp()` - Bypass Content Security Policy\n\n## Advanced Features\n\n### Frame Management\n```python\n# Get all frames in the page\nframe_tree = await get_frame_tree(connection)\nfor frame in frame_tree.child_frames:\n    print(f\"Frame: {frame.frame.url}\")\n```\n\n### Resource Interception\n```python\n# Get resource content\ncontent = await get_resource_content(\n    connection, \n    frame_id=frame_id, \n    url=\"https://example.com/script.js\"\n)\n```\n\n### Page Events\nThe page commands work with various page events:\n- `Page.loadEventFired` - Page load completed\n- `Page.domContentEventFired` - DOM content loaded\n- `Page.frameNavigated` - Frame navigation\n- `Page.frameStartedLoading` - Frame loading started\n\n!!! tip \"Tab Class Integration\"\n    Most page operations are available through the `Tab` class methods like `tab.go_to()`, `tab.reload()`, and `tab.screenshot()` which provide a more convenient API. ","docs/en/api/commands/runtime.md":"# Runtime Commands\n\nRuntime commands provide JavaScript execution capabilities and runtime environment management.\n\n## Overview\n\nThe runtime commands module enables JavaScript code execution, object inspection, and runtime environment control within browser contexts.\n\n::: pydoll.commands.runtime_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nRuntime commands are used for JavaScript execution and runtime management:\n\n```python\nfrom pydoll.commands.runtime_commands import evaluate, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable runtime events\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Execute JavaScript\nresult = await evaluate(\n    connection, \n    expression=\"document.title\",\n    return_by_value=True\n)\nprint(result.value)  # Page title\n```\n\n## Key Functionality\n\nThe runtime commands module provides functions for:\n\n### JavaScript Execution\n- `evaluate()` - Execute JavaScript expressions\n- `call_function_on()` - Call functions on objects\n- `compile_script()` - Compile JavaScript for reuse\n- `run_script()` - Run compiled scripts\n\n### Object Management\n- `get_properties()` - Get object properties\n- `release_object()` - Release object references\n- `release_object_group()` - Release object groups\n\n### Runtime Control\n- `enable()` / `disable()` - Enable/disable runtime events\n- `discard_console_entries()` - Clear console entries\n- `set_custom_object_formatter_enabled()` - Enable custom formatters\n\n### Exception Handling\n- `set_async_call_stack_depth()` - Set call stack depth\n- Exception capture and reporting\n- Error object inspection\n\n## Advanced Usage\n\n### Complex JavaScript Execution\n```python\n# Execute complex JavaScript with error handling\nscript = \"\"\"\ntry {\n    const elements = document.querySelectorAll('.item');\n    return Array.from(elements).map(el => ({\n        text: el.textContent,\n        href: el.href\n    }));\n} catch (error) {\n    return { error: error.message };\n}\n\"\"\"\n\nresult = await evaluate(\n    connection,\n    expression=script,\n    return_by_value=True,\n    await_promise=True\n)\n```\n\n### Object Inspection\n```python\n# Get detailed object properties\nproperties = await get_properties(\n    connection,\n    object_id=object_id,\n    own_properties=True,\n    accessor_properties_only=False\n)\n\nfor prop in properties:\n    print(f\"{prop.name}: {prop.value}\")\n```\n\n### Console Integration\nRuntime commands integrate with browser console:\n- Console messages and errors\n- Console API method calls\n- Custom console formatters\n\n!!! note \"Performance Considerations\"\n    JavaScript execution through runtime commands can be slower than native browser execution. Use judiciously for complex operations. ","docs/en/api/commands/storage.md":"# Storage Commands\n\nStorage commands provide comprehensive browser storage management including cookies, localStorage, sessionStorage, and IndexedDB.\n\n## Overview\n\nThe storage commands module enables management of all browser storage mechanisms, providing functionality for data persistence and retrieval.\n\n::: pydoll.commands.storage_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nStorage commands are used for managing browser storage across different mechanisms:\n\n```python\nfrom pydoll.commands.storage_commands import get_cookies, set_cookies, clear_data_for_origin\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get cookies for a domain\nconnection = ConnectionHandler()\ncookies = await get_cookies(connection, urls=[\"https://example.com\"])\n\n# Set a new cookie\nawait set_cookies(connection, cookies=[{\n    \"name\": \"session_id\",\n    \"value\": \"abc123\",\n    \"domain\": \"example.com\",\n    \"path\": \"/\",\n    \"httpOnly\": True,\n    \"secure\": True\n}])\n\n# Clear all storage for an origin\nawait clear_data_for_origin(\n    connection,\n    origin=\"https://example.com\",\n    storage_types=\"all\"\n)\n```\n\n## Key Functionality\n\nThe storage commands module provides functions for:\n\n### Cookie Management\n- `get_cookies()` - Get cookies by URL or domain\n- `set_cookies()` - Set new cookies\n- `delete_cookies()` - Delete specific cookies\n- `clear_cookies()` - Clear all cookies\n\n### Local Storage\n- `get_dom_storage_items()` - Get localStorage items\n- `set_dom_storage_item()` - Set localStorage item\n- `remove_dom_storage_item()` - Remove localStorage item\n- `clear_dom_storage()` - Clear localStorage\n\n### Session Storage\n- Session storage operations (similar to localStorage)\n- Session-specific data management\n- Tab-isolated storage\n\n### IndexedDB\n- `get_database_names()` - Get IndexedDB databases\n- `request_database()` - Access database structure\n- `request_data()` - Query database data\n- `clear_object_store()` - Clear object stores\n\n### Cache Storage\n- `request_cache_names()` - Get cache names\n- `request_cached_response()` - Get cached responses\n- `delete_cache()` - Delete cache entries\n\n### Application Cache (Deprecated)\n- Legacy application cache support\n- Manifest-based caching\n\n## Advanced Features\n\n### Bulk Operations\n```python\n# Clear all storage types for multiple origins\norigins = [\"https://example.com\", \"https://api.example.com\"]\nfor origin in origins:\n    await clear_data_for_origin(\n        connection,\n        origin=origin,\n        storage_types=\"cookies,local_storage,session_storage,indexeddb\"\n    )\n```\n\n### Storage Quotas\n```python\n# Get storage quota information\nquota_info = await get_usage_and_quota(connection, origin=\"https://example.com\")\nprint(f\"Used: {quota_info.usage} bytes\")\nprint(f\"Quota: {quota_info.quota} bytes\")\n```\n\n### Cross-Origin Storage\n```python\n# Manage storage across different origins\nawait set_cookies(connection, cookies=[{\n    \"name\": \"cross_site_token\",\n    \"value\": \"token123\",\n    \"domain\": \".example.com\",  # Applies to all subdomains\n    \"sameSite\": \"None\",\n    \"secure\": True\n}])\n```\n\n## Storage Types\n\nThe module supports various storage mechanisms:\n\n| Storage Type | Persistence | Scope | Capacity |\n|--------------|-------------|-------|----------|\n| Cookies | Persistent | Domain/Path | ~4KB per cookie |\n| localStorage | Persistent | Origin | ~5-10MB |\n| sessionStorage | Session | Tab | ~5-10MB |\n| IndexedDB | Persistent | Origin | Large (GB+) |\n| Cache API | Persistent | Origin | Large |\n\n!!! warning \"Privacy Considerations\"\n    Storage operations can affect user privacy. Always handle storage data responsibly and in compliance with privacy regulations. ","docs/en/api/commands/target.md":"# Target Commands\n\nTarget commands manage browser targets including tabs, windows, and other browsing contexts.\n\n## Overview\n\nThe target commands module provides functionality for creating, managing, and controlling browser targets such as tabs, popup windows, and service workers.\n\n::: pydoll.commands.target_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nTarget commands are used internally by browser classes to manage tabs and windows:\n\n```python\nfrom pydoll.commands.target_commands import get_targets, create_target, close_target\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get all browser targets\nconnection = ConnectionHandler()\ntargets = await get_targets(connection)\n\n# Create a new tab\nnew_target = await create_target(connection, url=\"https://example.com\")\n\n# Close a target\nawait close_target(connection, target_id=new_target.target_id)\n```\n\n## Key Functionality\n\nThe target commands module provides functions for:\n\n### Target Management\n- `get_targets()` - List all browser targets\n- `create_target()` - Create new tabs or windows\n- `close_target()` - Close specific targets\n- `activate_target()` - Bring target to foreground\n\n### Target Information\n- `get_target_info()` - Get detailed target information\n- Target types: page, background_page, service_worker, browser\n- Target states: attached, detached, crashed\n\n### Session Management\n- `attach_to_target()` - Attach to target for control\n- `detach_from_target()` - Detach from target\n- `send_message_to_target()` - Send commands to targets\n\n### Browser Context\n- `create_browser_context()` - Create isolated browser context\n- `dispose_browser_context()` - Remove browser context\n- `get_browser_contexts()` - List browser contexts\n\n## Target Types\n\nDifferent types of targets can be managed:\n\n### Page Targets\n```python\n# Create a new tab\npage_target = await create_target(\n    connection,\n    url=\"https://example.com\",\n    width=1920,\n    height=1080,\n    browser_context_id=None  # Default context\n)\n```\n\n### Popup Windows\n```python\n# Create a popup window\npopup_target = await create_target(\n    connection,\n    url=\"https://popup.example.com\",\n    width=800,\n    height=600,\n    new_window=True\n)\n```\n\n### Incognito Contexts\n```python\n# Create incognito browser context\nincognito_context = await create_browser_context(connection)\n\n# Create tab in incognito context\nincognito_tab = await create_target(\n    connection,\n    url=\"https://private.example.com\",\n    browser_context_id=incognito_context.browser_context_id\n)\n```\n\n!!! info \"Headless vs Headed: how contexts show up\"\n    Browser contexts are isolated logical environments. In headed mode, the first page created inside a new context will usually open in a new OS window. In headless mode, no window is shown — the isolation remains purely logical (cookies, storage, cache and auth state are still separate per context). Prefer contexts in headless/CI pipelines for performance and clean isolation.\n\n## Advanced Features\n\n### Target Events\nTarget commands work with various target events:\n- `Target.targetCreated` - New target created\n- `Target.targetDestroyed` - Target closed\n- `Target.targetInfoChanged` - Target information updated\n- `Target.targetCrashed` - Target crashed\n\n### Multi-Target Coordination\n```python\n# Manage multiple tabs\ntargets = await get_targets(connection)\npage_targets = [t for t in targets if t.type == \"page\"]\n\nfor target in page_targets:\n    # Perform operations on each tab\n    await activate_target(connection, target_id=target.target_id)\n    # ... do work in this tab\n```\n\n### Target Isolation\n```python\n# Create isolated browser context for testing\ntest_context = await create_browser_context(connection)\n\n# All targets in this context are isolated\ntest_tab1 = await create_target(\n    connection, \n    url=\"https://test1.com\",\n    browser_context_id=test_context.browser_context_id\n)\n\ntest_tab2 = await create_target(\n    connection,\n    url=\"https://test2.com\", \n    browser_context_id=test_context.browser_context_id\n)\n```\n\n!!! note \"Browser Integration\"\n    Target commands are primarily used internally by the `Chrome` and `Edge` browser classes. The high-level browser APIs provide more convenient methods for tab management. ","docs/pt/api/commands/browser.md":"# Comandos do Navegador\n\nOs comandos do navegador fornecem controle de baixo nível sobre as instâncias do navegador e sua configuração.\n\n## Visão Geral\n\nO módulo de comandos do navegador lida com operações em nível de navegador, como informações de versão, gerenciamento de alvos (targets) e configurações globais do navegador.\n\n::: pydoll.commands.browser_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos do navegador são tipicamente usados internamente pelas classes do navegador para gerenciar instâncias do navegador:\n\n```python\nfrom pydoll.commands.browser_commands import get_version\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Obter informações da versão do navegador\nconnection = ConnectionHandler()\nversion_info = await get_version(connection)\n```\n\n## Comandos Disponíveis\n\nO módulo de comandos do navegador fornece funções para:\n\n- Obter informações de versão do navegador e user agent\n- Gerenciar alvos (targets) do navegador (abas, janelas)\n- Controlar configurações e permissões globais do navegador\n- Lidar com eventos do ciclo de vida do navegador\n\n!!! note \"Uso Interno\"\n    Esses comandos são usados principalmente internamente pelas classes de navegador `Chrome` e `Edge`. O uso direto é recomendado apenas para cenários avançados.","docs/pt/api/commands/dom.md":"# Comandos DOM\n\nOs comandos DOM fornecem funcionalidade abrangente para interagir com o Document Object Model (Modelo de Objeto de Documento) das páginas web.\n\n## Visão Geral\n\nO módulo de comandos DOM é um dos módulos mais importantes no Pydoll, fornecendo toda a funcionalidade necessária para encontrar, interagir com e manipular elementos HTML em páginas web.\n\n::: pydoll.commands.dom_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos DOM são usados extensivamente pela classe `WebElement` e pelos métodos de localização de elementos:\n\n```python\nfrom pydoll.commands.dom_commands import query_selector, get_attributes\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Encontrar elemento e obter seus atributos\nconnection = ConnectionHandler()\nnode_id = await query_selector(connection, selector=\"#username\")\nattributes = await get_attributes(connection, node_id=node_id)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos DOM fornece funções para:\n\n### Localização de Elementos\n- `query_selector()` - Encontrar elemento único por seletor CSS\n- `query_selector_all()` - Encontrar múltiplos elementos por seletor CSS\n- `get_document()` - Obter o nó raiz do documento\n\n### Interação com Elementos\n- `click_element()` - Clicar em elementos\n- `focus_element()` - Focar em elementos\n- `set_attribute_value()` - Definir atributos do elemento\n- `get_attributes()` - Obter atributos do elemento\n\n### Informações do Elemento\n- `get_box_model()` - Obter posicionamento e dimensões do elemento\n- `describe_node()` - Obter informações detalhadas do elemento\n- `get_outer_html()` - Obter o conteúdo HTML do elemento\n\n### Manipulação do DOM\n- `remove_node()` - Remover elementos do DOM\n- `set_node_value()` - Definir valores do elemento\n- `request_child_nodes()` - Obter elementos filhos\n\n!!! tip \"APIs de Alto Nível\"\n    Embora esses comandos forneçam acesso poderoso de baixo nível, a maioria dos usuários deve usar os métodos de nível superior da classe `WebElement`, como `click()`, `type_text()` e `get_attribute()`, que usam esses comandos internamente.","docs/pt/api/commands/fetch.md":"# Comandos Fetch\n\nOs comandos Fetch fornecem capacidades avançadas de manipulação e interceptação de requisições de rede usando o domínio da API Fetch.\n\n## Visão Geral\n\nO módulo de comandos fetch permite o gerenciamento sofisticado de requisições de rede, incluindo modificação de requisições, interceptação de respostas e manipulação de autenticação.\n\n::: pydoll.commands.fetch_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos Fetch são usados para interceptação avançada de rede e manipulação de requisições:\n\n```python\nfrom pydoll.commands.fetch_commands import enable, request_paused, continue_request\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Habilitar domínio fetch\nconnection = ConnectionHandler()\nawait enable(connection, patterns=[{\n    \"urlPattern\": \"*\",\n    \"requestStage\": \"Request\"\n}])\n\n# Lidar com requisições pausadas\nasync def handle_paused_request(request_id, request):\n    # Modificar requisição ou continuar como está\n    await continue_request(connection, request_id=request_id)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos fetch fornece funções para:\n\n### Interceptação de Requisição\n- `enable()` - Habilitar domínio fetch com padrões\n- `disable()` - Desabilitar domínio fetch\n- `continue_request()` - Continuar requisições interceptadas\n- `fail_request()` - Falhar requisições com erros específicos\n\n### Modificação de Requisição\n- Modificar cabeçalhos da requisição\n- Alterar URLs da requisição\n- Alterar métodos da requisição (GET, POST, etc.)\n- Modificar corpos (bodies) da requisição\n\n### Manipulação de Resposta\n- `fulfill_request()` - Fornecer respostas customizadas\n- `get_response_body()` - Obter conteúdo da resposta\n- Modificação de cabeçalho de resposta\n- Controle do código de status da resposta\n\n### Autenticação\n- `continue_with_auth()` - Lidar com desafios de autenticação\n- Suporte a autenticação básica\n- Fluxos de autenticação customizados\n\n## Recursos Avançados\n\n### Interceptação Baseada em Padrões\n```python\n# Interceptar padrões de URL específicos\npatterns = [\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"},\n    {\"urlPattern\": \"*.js\", \"requestStage\": \"Response\"},\n    {\"urlPattern\": \"https://example.com/*\", \"requestStage\": \"Request\"}\n]\n\nawait enable(connection, patterns=patterns)\n```\n\n### Modificação de Requisição\n```python\n# Modificar requisições interceptadas\nasync def modify_request(request_id, request):\n    # Adicionar cabeçalho de autenticação\n    headers = request.headers.copy()\n    headers[\"Authorization\"] = \"Bearer token123\"\n    \n    # Continuar com cabeçalhos modificados\n    await continue_request(\n        connection,\n        request_id=request_id,\n        headers=headers\n    )\n```\n\n### Simulação de Resposta (Mocking)\n```python\n# Simular (mockar) respostas de API\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers=[\n        {\"name\": \"Content-Type\", \"value\": \"application/json\"},\n        {\"name\": \"Access-Control-Allow-Origin\", \"value\": \"*\"}\n    ],\n    body='{\"status\": \"success\", \"data\": {\"mocked\": true}}'\n)\n```\n\n### Manipulação de Autenticação\n```python\n# Lidar com desafios de autenticação\nawait continue_with_auth(\n    connection,\n    request_id=request_id,\n    auth_challenge_response={\n        \"response\": \"ProvideCredentials\",\n        \"username\": \"user\",\n        \"password\": \"pass\"\n    }\n)\n```\n\n## Estágios da Requisição\n\nOs comandos Fetch podem interceptar requisições em diferentes estágios:\n\n| Estágio | Descrição | Casos de Uso |\n|-------|-------------|-----------|\n| Requisição | Antes da requisição ser enviada | Modificar cabeçalhos, URL, método |\n| Resposta | Após a resposta ser recebida | Simular respostas, modificar conteúdo |\n\n## Manipulação de Erros\n\n```python\n# Falhar requisições com erros específicos\nawait fail_request(\n    connection,\n    request_id=request_id,\n    error_reason=\"ConnectionRefused\"  # ou \"AccessDenied\", \"TimedOut\", etc.\n)\n```\n\n## Integração com Comandos de Rede (Network)\n\nOs comandos Fetch trabalham em conjunto com os comandos de rede (Network), mas fornecem controle mais granular:\n\n- **Comandos de Rede (Network)**: Monitoramento e controle de rede mais amplos\n- **Comandos Fetch**: Interceptação e modificação específicas de requisição/resposta\n\n!!! tip \"Considerações de Performance\"\n    A interceptação do Fetch pode impactar a performance de carregamento da página. Use padrões de URL específicos e desabilite quando não for necessário para minimizar a sobrecarga (overhead).","docs/pt/api/commands/index.md":"# Visão Geral dos Comandos\n\nO módulo de Comandos (Commands) fornece interfaces de alto nível para interagir com os domínios do Chrome DevTools Protocol (CDP). Cada módulo de comando corresponde a um domínio CDP específico e fornece métodos para executar várias operações do navegador.\n\n## Módulos de Comando Disponíveis\n\n### Comandos do Navegador (Browser)\n- **Módulo**: `browser_commands.py`\n- **Propósito**: Operações em nível de navegador e gerenciamento de janelas\n- **Documentação**: [Comandos do Navegador](browser.md)\n\n### Comandos DOM\n- **Módulo**: `dom_commands.py`\n- **Propósito**: Manipulação da árvore DOM e operações de elementos\n- **Documentação**: [Comandos DOM](dom.md)\n\n### Comandos de Entrada (Input)\n- **Módulo**: `input_commands.py`\n- **Propósito**: Simulação de eventos de entrada (teclado, mouse, toque)\n- **Documentação**: [Comandos de Entrada](input.md)\n\n### Comandos de Rede (Network)\n- **Módulo**: `network_commands.py`\n- **Propósito**: Monitoramento de rede e interceptação de requisições\n- **Documentação**: [Comandos de Rede](network.md)\n\n### Comandos de Página (Page)\n- **Módulo**: `page_commands.py`\n- **Propósito**: Gerenciamento do ciclo de vida da página e navegação\n- **Documentação**: [Comandos de Página](page.md)\n\n### Comandos de Tempo de Execução (Runtime)\n- **Módulo**: `runtime_commands.py`\n- **Propósito**: Execução de JavaScript e gerenciamento de tempo de execução\n- **Documentação**: [Comandos de Tempo de Execução](runtime.md)\n\n### Comandos de Armazenamento (Storage)\n- **Módulo**: `storage_commands.py`\n- **Propósito**: Acesso ao armazenamento do navegador (cookies, local storage, etc.)\n- **Documentação**: [Comandos de Armazenamento](storage.md)\n\n### Comandos de Alvo (Target)\n- **Módulo**: `target_commands.py`\n- **Propósito**: Gerenciamento de alvos (targets) e operações de aba\n- **Documentação**: [Comandos de Alvo](target.md)\n\n### Comandos Fetch\n- **Módulo**: `fetch_commands.py`\n- **Propósito**: Interceptação e modificação de requisições de rede\n- **Documentação**: [Comandos Fetch](fetch.md)\n\n## Padrão de Uso\n\nOs comandos são tipicamente acessados através das instâncias do navegador (browser) ou aba (tab):\n\n```python\nfrom pydoll.browser.chromium import Chrome\n\n# Inicializa o navegador\nbrowser = Chrome()\nawait browser.start()\n\n# Obtém a aba ativa\ntab = await browser.get_active_tab()\n\n# Usa comandos através da aba\nawait tab.navigate(\"https://example.com\")\nelement = await tab.find(id=\"button\")\nawait element.click()\n```\n\n## Estrutura dos Comandos\n\nCada módulo de comando segue um padrão consistente:\n- **Métodos estáticos**: Para execução direta de comandos\n- **Dicas de tipo (Type hints)**: Segurança de tipo (type safety) completa com tipos de protocolo\n- **Tratamento de erros**: Tratamento de exceção adequado para erros CDP\n- **Documentação**: Docstrings abrangentes com exemplos","docs/pt/api/commands/input.md":"# Comandos de Entrada (Input)\n\nOs comandos de entrada lidam com interações de mouse e teclado, fornecendo simulação de entrada semelhante à humana.\n\n## Visão Geral\n\nO módulo de comandos de entrada fornece funcionalidade para simular a entrada do usuário, incluindo movimentos do mouse, cliques, digitação no teclado e pressionamento de teclas.\n\n::: pydoll.commands.input_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de entrada são usados por métodos de interação de elementos e podem ser usados diretamente para cenários de entrada avançados:\n\n```python\nfrom pydoll.commands.input_commands import dispatch_mouse_event, dispatch_key_event\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Simular clique do mouse\nconnection = ConnectionHandler()\nawait dispatch_mouse_event(\n    connection, \n    type=\"mousePressed\", \n    x=100, \n    y=200, \n    button=\"left\"\n)\n\n# Simular digitação do teclado\nawait dispatch_key_event(\n    connection,\n    type=\"keyDown\",\n    key=\"Enter\"\n)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de entrada fornece funções para:\n\n### Eventos de Mouse\n- `dispatch_mouse_event()` - Cliques, movimentos e eventos de roda do mouse\n- Estados dos botões do mouse (esquerdo, direito, meio)\n- Posicionamento baseado em coordenadas\n- Operações de arrastar e soltar (drag and drop)\n\n### Eventos de Teclado\n- `dispatch_key_event()` - Eventos de pressionar e soltar tecla\n- `insert_text()` - Inserção direta de texto\n- Manipulação de teclas especiais (Enter, Tab, teclas de seta, etc.)\n- Teclas modificadoras (Ctrl, Alt, Shift)\n\n### Eventos de Toque (Touch)\n- Simulação de tela de toque\n- Gestos multitoque (multi-touch)\n- Coordenadas e pressão do toque\n\n## Comportamento Semelhante ao Humano\n\nOs comandos de entrada suportam padrões de comportamento semelhantes ao humano:\n\n- Curvas naturais de movimento do mouse\n- Velocidades e padrões de digitação realistas\n- Micro-atrasos aleatórios entre ações\n- Eventos de toque sensíveis à pressão\n\n!!! tip \"Métodos de Elemento\"\n    Para a maioria dos casos de uso, utilize os métodos de elemento de nível superior, como `element.click()` e `element.type_text()`, que fornecem uma API mais conveniente e lidam com cenários comuns automaticamente.","docs/pt/api/commands/network.md":"# Comandos de Rede (Network)\n\nOs comandos de rede fornecem controle abrangente sobre requisições de rede, respostas e comportamento de rede do navegador.\n\n## Visão Geral\n\nO módulo de comandos de rede habilita a interceptação de requisições, modificação de respostas, gerenciamento de cookies e capacidades de monitoramento de rede.\n\n::: pydoll.commands.network_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de rede são usados para cenários avançados como interceptação de requisições e monitoramento de rede:\n\n```python\nfrom pydoll.commands.network_commands import enable, set_request_interception\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Habilitar monitoramento de rede\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Habilitar interceptação de requisições\nawait set_request_interception(connection, patterns=[{\"urlPattern\": \"*\"}])\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de rede fornece funções para:\n\n### Gerenciamento de Requisições\n- `enable()` / `disable()` - Habilitar/desabilitar monitoramento de rede\n- `set_request_interception()` - Interceptar e modificar requisições\n- `continue_intercepted_request()` - Continuar ou modificar requisições interceptadas\n- `get_request_post_data()` - Obter dados do corpo (body) da requisição\n\n### Manipulação de Respostas\n- `get_response_body()` - Obter conteúdo da resposta\n- `fulfill_request()` - Fornecer respostas customizadas\n- `fail_request()` - Simular falhas de rede\n\n### Gerenciamento de Cookies\n- `get_cookies()` - Obter cookies do navegador\n- `set_cookies()` - Definir cookies do navegador\n- `delete_cookies()` - Deletar cookies específicos\n- `clear_browser_cookies()` - Limpar todos os cookies\n\n### Controle de Cache\n- `clear_browser_cache()` - Limpar cache do navegador\n- `set_cache_disabled()` - Desabilitar cache do navegador\n- `get_response_body_for_interception()` - Obter respostas em cache\n\n### Segurança & Cabeçalhos\n- `set_user_agent_override()` - Sobrescrever user agent\n- `set_extra_http_headers()` - Adicionar cabeçalhos customizados\n- `emulate_network_conditions()` - Simular condições de rede\n\n## Casos de Uso Avançados\n\n### Interceptação de Requisição\n```python\n# Interceptar e modificar requisições\nawait set_request_interception(connection, patterns=[\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"}\n])\n\n# Lidar com requisição interceptada\nasync def handle_request(request):\n    if \"api/login\" in request.url:\n        # Modificar cabeçalhos da requisição\n        headers = request.headers.copy()\n        headers[\"Authorization\"] = \"Bearer token\"\n        await continue_intercepted_request(\n            connection, \n            request_id=request.request_id,\n            headers=headers\n        )\n```\n\n### Simulação de Resposta (Mocking)\n```python\n# Simular (mockar) respostas de API\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers={\"Content-Type\": \"application/json\"},\n    body='{\"status\": \"success\"}'\n)\n```\n\n!!! warning \"Impacto na Performance\"\n    A interceptação de rede pode impactar a performance de carregamento da página. Use seletivamente e desabilite quando não for necessário.","docs/pt/api/commands/page.md":"# Comandos de Página (Page)\n\nOs comandos de página lidam com a navegação da página, eventos do ciclo de vida e operações em nível de página.\n\n## Visão Geral\n\nO módulo de comandos de página fornece funcionalidade para navegar entre páginas, gerenciar o ciclo de vida da página, lidar com a execução de JavaScript e controlar o comportamento da página.\n\n::: pydoll.commands.page_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de página são usados extensivamente pela classe `Tab` para navegação e gerenciamento da página:\n\n```python\nfrom pydoll.commands.page_commands import navigate, reload, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Navegar para uma URL\nconnection = ConnectionHandler()\nawait enable(connection)  # Habilitar eventos da página\nawait navigate(connection, url=\"https://example.com\")\n\n# Recarregar a página\nawait reload(connection)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de página fornece funções para:\n\n### Navegação\n- `Maps()` - Navegar para URLs\n- `reload()` - Recarregar página atual\n- `go_back()` - Navegar para trás no histórico\n- `go_forward()` - Navegar para frente no histórico\n- `stop_loading()` - Parar carregamento da página\n\n### Ciclo de Vida da Página\n- `enable()` / `disable()` - Habilitar/desabilitar eventos da página\n- `get_frame_tree()` - Obter estrutura de frames da página\n- `get_navigation_history()` - Obter histórico de navegação\n\n### Gerenciamento de Conteúdo\n- `get_resource_content()` - Obter conteúdo de recurso da página\n- `search_in_resource()` - Pesquisar dentro de recursos da página\n- `set_document_content()` - Definir conteúdo HTML da página\n\n### Capturas de Tela & PDF\n- `capture_screenshot()` - Tirar capturas de tela da página\n- `print_to_pdf()` - Gerar PDF a partir da página\n- `capture_snapshot()` - Capturar snapshots da página\n\n### Execução de JavaScript\n- `add_script_to_evaluate_on_new_document()` - Adicionar scripts para avaliar em novo documento (scripts de inicialização)\n- `remove_script_to_evaluate_on_new_document()` - Remover scripts de inicialização\n\n### Configurações da Página\n- `set_lifecycle_events_enabled()` - Controlar eventos do ciclo de vida\n- `set_ad_blocking_enabled()` - Habilitar/desabilitar bloqueio de anúncios\n- `set_bypass_csp()` - Contornar (Bypass) Política de Segurança de Conteúdo (CSP)\n\n## Recursos Avançados\n\n### Gerenciamento de Frames\n```python\n# Obter todos os frames na página\nframe_tree = await get_frame_tree(connection)\nfor frame in frame_tree.child_frames:\n    print(f\"Frame: {frame.frame.url}\")\n```\n\n### Interceptação de Recursos\n```python\n# Obter conteúdo do recurso\ncontent = await get_resource_content(\n    connection, \n    frame_id=frame_id, \n    url=\"https://example.com/script.js\"\n)\n```\n\n### Eventos da Página\nOs comandos de página funcionam com vários eventos de página:\n- `Page.loadEventFired` - Carregamento da página concluído\n- `Page.domContentEventFired` - Conteúdo DOM carregado\n- `Page.frameNavigated` - Navegação do frame\n- `Page.frameStartedLoading` - Carregamento do frame iniciado\n\n!!! tip \"Integração com a Classe Tab\"\n    A maioria das operações de página está disponível através dos métodos da classe `Tab`, como `tab.go_to()`, `tab.reload()` e `tab.screenshot()`, que fornecem uma API mais conveniente.","docs/pt/api/commands/runtime.md":"# Comandos de Tempo de Execução (Runtime)\n\nOs comandos de tempo de execução fornecem capacidades de execução de JavaScript e gerenciamento do ambiente de tempo de execução.\n\n## Visão Geral\n\nO módulo de comandos de tempo de execução habilita a execução de código JavaScript, inspeção de objetos e controle do ambiente de tempo de execução dentro dos contextos do navegador.\n\n::: pydoll.commands.runtime_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de tempo de execução são usados para execução de JavaScript e gerenciamento do tempo de execução:\n\n```python\nfrom pydoll.commands.runtime_commands import evaluate, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Habilitar eventos de tempo de execução\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Executar JavaScript\nresult = await evaluate(\n    connection, \n    expression=\"document.title\",\n    return_by_value=True\n)\nprint(result.value)  # Título da página\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de tempo de execução fornece funções para:\n\n### Execução de JavaScript\n- `evaluate()` - Executar expressões JavaScript\n- `call_function_on()` - Chamar funções em objetos\n- `compile_script()` - Compilar JavaScript para reutilização\n- `run_script()` - Executar scripts compilados\n\n### Gerenciamento de Objetos\n- `get_properties()` - Obter propriedades do objeto\n- `release_object()` - Liberar referências de objeto\n- `release_object_group()` - Liberar grupos de objetos\n\n### Controle de Tempo de Execução\n- `enable()` / `disable()` - Habilitar/desabilitar eventos de tempo de execução\n- `discard_console_entries()` - Limpar entradas do console\n- `set_custom_object_formatter_enabled()` - Habilitar formatadores customizados\n\n### Manipulação de Exceções\n- `set_async_call_stack_depth()` - Definir profundidade da pilha de chamadas assíncronas\n- Captura e relatório de exceções\n- Inspeção de objeto de erro\n\n## Uso Avançado\n\n### Execução de JavaScript Complexo\n```python\n# Executar JavaScript complexo com tratamento de erros\nscript = \"\"\"\ntry {\n    const elements = document.querySelectorAll('.item');\n    return Array.from(elements).map(el => ({\n        text: el.textContent,\n        href: el.href\n    }));\n} catch (error) {\n    return { error: error.message };\n}\n\"\"\"\n\nresult = await evaluate(\n    connection,\n    expression=script,\n    return_by_value=True,\n    await_promise=True\n)\n```\n\n### Inspeção de Objeto\n```python\n# Obter propriedades detalhadas do objeto\nproperties = await get_properties(\n    connection,\n    object_id=object_id,\n    own_properties=True,\n    accessor_properties_only=False\n)\n\nfor prop in properties:\n    print(f\"{prop.name}: {prop.value}\")\n```\n\n### Integração com Console\nOs comandos de tempo de execução se integram ao console do navegador:\n- Mensagens e erros do console\n- Chamadas de método da API Console\n- Formatadores de console customizados\n\n!!! note \"Considerações de Performance\"\n    A execução de JavaScript através dos comandos de tempo de execução pode ser mais lenta do que a execução nativa do navegador. Use com moderação para operações complexas.","docs/pt/api/commands/storage.md":"# Comandos de Armazenamento (Storage)\n\nOs comandos de armazenamento fornecem gerenciamento abrangente do armazenamento do navegador, incluindo cookies, localStorage, sessionStorage e IndexedDB.\n\n## Visão Geral\n\nO módulo de comandos de armazenamento permite o gerenciamento de todos os mecanismos de armazenamento do navegador, fornecendo funcionalidade para persistência e recuperação de dados.\n\n::: pydoll.commands.storage_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de armazenamento são usados para gerenciar o armazenamento do navegador em diferentes mecanismos:\n\n```python\nfrom pydoll.commands.storage_commands import get_cookies, set_cookies, clear_data_for_origin\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Obter cookies para um domínio\nconnection = ConnectionHandler()\ncookies = await get_cookies(connection, urls=[\"https://example.com\"])\n\n# Definir um novo cookie\nawait set_cookies(connection, cookies=[{\n    \"name\": \"session_id\",\n    \"value\": \"abc123\",\n    \"domain\": \"example.com\",\n    \"path\": \"/\",\n    \"httpOnly\": True,\n    \"secure\": True\n}])\n\n# Limpar todo o armazenamento para uma origem\nawait clear_data_for_origin(\n    connection,\n    origin=\"https://example.com\",\n    storage_types=\"all\"\n)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de armazenamento fornece funções para:\n\n### Gerenciamento de Cookies\n- `get_cookies()` - Obter cookies por URL ou domínio\n- `set_cookies()` - Definir novos cookies\n- `delete_cookies()` - Deletar cookies específicos\n- `clear_cookies()` - Limpar todos os cookies\n\n### Local Storage\n- `get_dom_storage_items()` - Obter itens do localStorage\n- `set_dom_storage_item()` - Definir item do localStorage\n- `remove_dom_storage_item()` - Remover item do localStorage\n- `clear_dom_storage()` - Limpar localStorage\n\n### Session Storage\n- Operações de session storage (semelhantes ao localStorage)\n- Gerenciamento de dados específicos da sessão\n- Armazenamento isolado por aba\n\n### IndexedDB\n- `get_database_names()` - Obter bancos de dados IndexedDB\n- `request_database()` - Acessar a estrutura do banco de dados\n- `request_data()` - Consultar dados do banco de dados\n- `clear_object_store()` - Limpar object stores\n\n### Cache Storage\n- `request_cache_names()` - Obter nomes de cache\n- `request_cached_response()` - Obter respostas em cache\n- `delete_cache()` - Deletar entradas de cache\n\n### Application Cache (Obsoleto)\n- Suporte a cache de aplicação legado\n- Cache baseado em manifesto\n\n## Recursos Avançados\n\n### Operações em Massa\n```python\n# Limpar todos os tipos de armazenamento para múltiplas origens\norigins = [\"https://example.com\", \"https://api.example.com\"]\nfor origin in origins:\n    await clear_data_for_origin(\n        connection,\n        origin=origin,\n        storage_types=\"cookies,local_storage,session_storage,indexeddb\"\n    )\n```\n\n### Cotas de Armazenamento\n```python\n# Obter informações de uso e cota de armazenamento\nquota_info = await get_usage_and_quota(connection, origin=\"https://example.com\")\nprint(f\"Usado: {quota_info.usage} bytes\")\nprint(f\"Cota: {quota_info.quota} bytes\")\n```\n\n### Armazenamento Cross-Origin\n```python\n# Gerenciar armazenamento entre diferentes origens\nawait set_cookies(connection, cookies=[{\n    \"name\": \"cross_site_token\",\n    \"value\": \"token123\",\n    \"domain\": \".example.com\",  # Aplica-se a todos os subdomínios\n    \"sameSite\": \"None\",\n    \"secure\": True\n}])\n```\n\n## Tipos de Armazenamento\n\nO módulo suporta vários mecanismos de armazenamento:\n\n| Tipo de Armazenamento | Persistência | Escopo | Capacidade |\n|--------------|-------------|-------|----------|\n| Cookies | Persistente | Domínio/Caminho | ~4KB por cookie |\n| localStorage | Persistente | Origem | ~5-10MB |\n| sessionStorage | Sessão | Aba | ~5-10MB |\n| IndexedDB | Persistente | Origem | Grande (GB+) |\n| Cache API | Persistente | Origem | Grande |\n\n!!! warning \"Considerações de Privacidade\"\n    Operações de armazenamento podem afetar a privacidade do usuário. Sempre lide com dados de armazenamento de forma responsável e em conformidade com as regulamentações de privacidade.","docs/pt/api/commands/target.md":"# Comandos de Alvo (Target)\n\nOs comandos de alvo (Target) gerenciam os alvos do navegador, incluindo abas, janelas e outros contextos de navegação.\n\n## Visão Geral\n\nO módulo de comandos de alvo fornece funcionalidade para criar, gerenciar e controlar os alvos do navegador, como abas, janelas pop-up e service workers.\n\n::: pydoll.commands.target_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de alvo são usados internamente pelas classes do navegador para gerenciar abas e janelas:\n\n```python\nfrom pydoll.commands.target_commands import get_targets, create_target, close_target\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Obter todos os alvos do navegador\nconnection = ConnectionHandler()\ntargets = await get_targets(connection)\n\n# Criar uma nova aba\nnew_target = await create_target(connection, url=\"https://example.com\")\n\n# Fechar um alvo\nawait close_target(connection, target_id=new_target.target_id)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de alvo fornece funções para:\n\n### Gerenciamento de Alvo\n- `get_targets()` - Listar todos os alvos do navegador\n- `create_target()` - Criar novas abas ou janelas\n- `close_target()` - Fechar alvos específicos\n- `activate_target()` - Trazer alvo para o primeiro plano\n\n### Informações do Alvo\n- `get_target_info()` - Obter informações detalhadas do alvo\n- Tipos de alvo: page, background_page, service_worker, browser\n- Estados do alvo: attached, detached, crashed\n\n### Gerenciamento de Sessão\n- `attach_to_target()` - Anexar a um alvo para controle\n- `detach_from_target()` - Desanexar de um alvo\n- `send_message_to_target()` - Enviar comandos para alvos\n\n### Contexto do Navegador\n- `create_browser_context()` - Criar contexto de navegador isolado\n- `dispose_browser_context()` - Remover contexto de navegador\n- `get_browser_contexts()` - Listar contextos de navegador\n\n## Tipos de Alvos\n\nDiferentes tipos de alvos podem ser gerenciados:\n\n### Alvos de Página\n```python\n# Criar uma nova aba\npage_target = await create_target(\n    connection,\n    url=\"https://example.com\",\n    width=1920,\n    height=1080,\n    browser_context_id=None  # Contexto padrão\n)\n```\n\n### Janelas Pop-up\n```python\n# Criar uma janela pop-up\npopup_target = await create_target(\n    connection,\n    url=\"https://popup.example.com\",\n    width=800,\n    height=600,\n    new_window=True\n)\n```\n\n### Contextos Anônimos (Incognito)\n```python\n# Criar contexto de navegador anônimo\nincognito_context = await create_browser_context(connection)\n\n# Criar aba no contexto anônimo\nincognito_tab = await create_target(\n    connection,\n    url=\"https://private.example.com\",\n    browser_context_id=incognito_context.browser_context_id\n)\n```\n\n!!! info \"Headless vs Headed: como os contextos se manifestam\"\n    Contextos de navegador são ambientes lógicos isolados. No modo **headed** (com interface gráfica), a primeira página criada dentro de um novo contexto geralmente abrirá em uma nova janela do SO. No modo **headless** (sem interface gráfica), nenhuma janela é mostrada — o isolamento permanece puramente lógico (cookies, armazenamento, cache e estado de autenticação ainda são separados por contexto). Prefira contextos em pipelines headless/CI para performance e isolamento limpo.\n\n## Recursos Avançados\n\n### Eventos de Alvo\nOs comandos de alvo funcionam com vários eventos de alvo:\n- `Target.targetCreated` - Novo alvo criado\n- `Target.targetDestroyed` - Alvo fechado\n- `Target.targetInfoChanged` - Informações do alvo atualizadas\n- `Target.targetCrashed` - Alvo falhou (crashed)\n\n### Coordenação Multi-Alvo\n```python\n# Gerenciar múltiplas abas\ntargets = await get_targets(connection)\npage_targets = [t for t in targets if t.type == \"page\"]\n\nfor target in page_targets:\n    # Realizar operações em cada aba\n    await activate_target(connection, target_id=target.target_id)\n    # ... fazer o trabalho nesta aba\n```\n\n### Isolamento de Alvo\n```python\n# Criar contexto de navegador isolado para testes\ntest_context = await create_browser_context(connection)\n\n# Todos os alvos neste contexto estão isolados\ntest_tab1 = await create_target(\n    connection, \n    url=\"https://test1.com\",\n    browser_context_id=test_context.browser_context_id\n)\n\ntest_tab2 = await create_target(\n    connection,\n    url=\"https://test2.com\", \n    browser_context_id=test_context.browser_context_id\n)\n```\n\n!!! note \"Integração com o Navegador\"\n    Os comandos de alvo são usados principalmente internamente pelas classes de navegador `Chrome` e `Edge`. As APIs de navegador de alto nível fornecem métodos mais convenientes para o gerenciamento de abas.","docs/zh/api/commands/browser.md":"# 浏览器命令\n\n浏览器命令提供对浏览器实例及其配置的底层控制。\n\n## 概述\n\n浏览器命令模块处理浏览器级别的操作，例如版本信息、目标管理和浏览器范围的设置。\n\n::: pydoll.commands.browser_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n浏览器命令通常由浏览器类在内部使用，用于管理浏览器实例：\n\n```python\nfrom pydoll.commands.browser_commands import get_version\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get browser version information\nconnection = ConnectionHandler()\nversion_info = await get_version(connection)\n```\n\n## 可用命令\n\n浏览器命令模块提供以下功能：\n\n- 获取浏览器版本和用户代理信息\n- 管理浏览器目标（标签页、窗口）\n- 控制浏览器范围的设置和权限\n- 处理浏览器生命周期事件\n\n!!! note \"Internal Usage\"\n    These commands are primarily used internally by the `Chrome` and `Edge` browser classes. Direct usage is recommended only for advanced scenarios. ","docs/zh/api/commands/dom.md":"# DOM命令\n\nDOM 命令模块提供了与网页文档对象模型交互的全面功能。\n\n## 概述\n\nDOM 命令模块是 Pydoll 中最重要的模块之一，它提供了查找、交互和操作网页上的 HTML 元素所需的所有功能。\n\n::: pydoll.commands.dom_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nDOM commands are used extensively by the `WebElement` class and element finding methods:\n\n## 用法\n\n`WebElement` 类和元素查找方法广泛使用DOM 命令：\n\n```python\nfrom pydoll.commands.dom_commands import query_selector, get_attributes\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Find element and get its attributes\nconnection = ConnectionHandler()\nnode_id = await query_selector(connection, selector=\"#username\")\nattributes = await get_attributes(connection, node_id=node_id)\n```\n\n## 主要功能\n\nDOM 命令模块提供以下功能：\n\n### 元素定位\n- `query_selector()` - 通过CSS选择器进行元素定位\n- `query_selector_all()` - 通过CSS选择器进行元素定位（查找多个元素）\n- `get_document()` - 获取document的根节点\n\n### 元素交互\n- `click_element()` - 点击元素\n- `focus_element()` - 焦点置于元素\n- `set_attribute_value()` - 设置元素属性\n- `get_attributes()` - 获取元素属性\n\n### 元素信息\n- `get_box_model()` - 获取元素位置和尺寸\n- `describe_node()` - 获取元素详细信息\n- `get_outer_html()` - 获取元素的HTML内容\n\n### DOM 操作\n- `remove_node()` - 从DOM节点中删除元素\n- `set_node_value()` - 设置元素值\n- `request_child_nodes()` - 获取子元素\n\n!!! tip \"High-Level APIs\"\n    While these commands provide powerful low-level access, most users should use the higher-level `WebElement` class methods like `click()`, `type_text()`, and `get_attribute()` which use these commands internally. ","docs/zh/api/commands/fetch.md":"# Fetch 命令\n\nFetch 命令使用 Fetch API 域提供高级网络请求处理和拦截功能。\n\n## 概述\n\nFetch 命令模块支持复杂的网络请求管理，包括请求修改、响应拦截和身份验证处理。\n\n::: pydoll.commands.fetch_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\nFetch 命令用于高级网络拦截和请求处理：\n\n```python\nfrom pydoll.commands.fetch_commands import enable, request_paused, continue_request\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable fetch domain\nconnection = ConnectionHandler()\nawait enable(connection, patterns=[{\n    \"urlPattern\": \"*\",\n    \"requestStage\": \"Request\"\n}])\n\n# Handle paused requests\nasync def handle_paused_request(request_id, request):\n    # Modify request or continue as-is\n    await continue_request(connection, request_id=request_id)\n```\n\n## 关键功能\n\nfetch 命令模块提供以下功能：\n\n### 请求拦截\n- `enable()` - 激活fetch模式\n- `disable()` - 关闭fetch模式\n- `continue_request()` - 继续请求（放行）\n- `fail_request()` - 返回特定错误请求\n\n### 修改请求\n- 修改请求headers\n- 更改请求 URL\n- 更改请求方法（GET、POST 等）\n- 修改请求body\n\n### 响应处理\n- `fulfill_request()` - 提供自定义响应\n- `get_response_body()` - 获取响应内容\n- 修改响应头\n- 响应状态码控制\n\n### 身份验证\n- `continue_with_auth()` - 处理身份验证挑战\n- 基本身份验证支持\n- 自定义身份验证流程\n\n## 高级功能\n\n### 基于模式的拦截\n\n```python\n# Intercept specific URL patterns\npatterns = [\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"},\n    {\"urlPattern\": \"*.js\", \"requestStage\": \"Response\"},\n    {\"urlPattern\": \"https://example.com/*\", \"requestStage\": \"Request\"}\n]\n\nawait enable(connection, patterns=patterns)\n```\n\n### 请求修改\n```python\n# Modify intercepted requests\nasync def modify_request(request_id, request):\n    # Add authentication header\n    headers = request.headers.copy()\n    headers[\"Authorization\"] = \"Bearer token123\"\n    \n    # Continue with modified headers\n    await continue_request(\n        connection,\n        request_id=request_id,\n        headers=headers\n    )\n```\n\n### 响应模拟\n```python\n# Mock API responses\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers=[\n        {\"name\": \"Content-Type\", \"value\": \"application/json\"},\n        {\"name\": \"Access-Control-Allow-Origin\", \"value\": \"*\"}\n    ],\n    body='{\"status\": \"success\", \"data\": {\"mocked\": true}}'\n)\n```\n\n### 身份验证处理\n```python\n# Handle authentication challenges\nawait continue_with_auth(\n    connection,\n    request_id=request_id,\n    auth_challenge_response={\n        \"response\": \"ProvideCredentials\",\n        \"username\": \"user\",\n        \"password\": \"pass\"\n    }\n)\n```\n\n## 请求阶段\n\nFetch 命令可以在不同阶段拦截请求：\n\n| 阶段 | 描述 | 用例 |\n|-------|-------------|-----------|\n| 请求 | 请求发送前 | 修改标头、URL 和方法 |\n| 响应 | 收到响应后 | 模拟响应，修改内容 |\n\n## 错误处理\n\n```python\n# Fail requests with specific errors\nawait fail_request(\n    connection,\n    request_id=request_id,\n    error_reason=\"ConnectionRefused\"  # or \"AccessDenied\", \"TimedOut\", etc.\n)\n```\n\n## 与网络命令集成\n\nFetch 命令与网络命令协同工作，但提供更精细的控制：\n\n- **网络命令**：更广泛的网络监控和控制\n- **Fetch 命令**：特定的请求/响应拦截和修改\n\n!!! tip \"Performance Considerations\"\n    Fetch interception can impact page loading performance. Use specific URL patterns and disable when not needed to minimize overhead. ","docs/zh/api/commands/index.md":"# 命令概述\n\n命令模块提供了与Chrome DevTools协议(CDP)域交互的高级接口。每个命令模块对应一个特定的CDP域，并提供执行各种浏览器操作的方法。\n\n## 可用命令模块\n\n### 浏览器命令\n- **模块**: `browser_commands.py`\n- **用途**: 浏览器级别操作和窗口管理\n- **文档**: [浏览器命令](browser.md)\n\n### DOM命令\n- **模块**: `dom_commands.py`\n- **用途**: DOM树操作和元素操作\n- **文档**: [DOM命令](dom.md)\n\n### 输入命令\n- **模块**: `input_commands.py`\n- **用途**: 输入事件模拟(键盘、鼠标、触摸)\n- **文档**: [输入命令](input.md)\n\n### 网络命令\n- **模块**: `network_commands.py`\n- **用途**: 网络监控和请求拦截\n- **文档**: [网络命令](network.md)\n\n### 页面命令\n- **模块**: `page_commands.py`\n- **用途**: 页面生命周期管理和导航\n- **文档**: [页面命令](page.md)\n\n### 运行时命令\n- **模块**: `runtime_commands.py`\n- **用途**: JavaScript执行和运行时管理\n- **文档**: [运行时命令](runtime.md)\n\n### 存储命令\n- **模块**: `storage_commands.py`\n- **用途**: 浏览器存储访问(cookies、本地存储等)\n- **文档**: [存储命令](storage.md)\n\n### 目标命令\n- **模块**: `target_commands.py`\n- **用途**: 目标管理和标签页操作\n- **文档**: [目标命令](target.md)\n\n### 获取命令\n- **模块**: `fetch_commands.py`\n- **用途**: 网络请求拦截和修改\n- **文档**: [获取命令](fetch.md)\n\n## 使用模式\n\n命令通常通过浏览器或标签页实例访问：\n\n```python\nfrom pydoll.browser.chromium import Chrome\n\n# 初始化浏览器\nbrowser = Chrome()\nawait browser.start()\n\n# 获取活动标签页\ntab = await browser.get_active_tab()\n\n# 通过标签页使用命令\nawait tab.navigate(\"https://example.com\")\nelement = await tab.find(id=\"button\")\nawait element.click()\n```\n\n## 命令结构\n\n每个命令模块遵循一致的模式：\n- **静态方法**: 用于直接命令执行\n- **类型提示**: 使用协议类型的完整类型安全\n- **错误处理**: 对CDP错误的正确异常处理\n- **文档**: 包含示例的全面文档字符串 ","docs/zh/api/commands/input.md":"# 输入命令\n\n输入命令处理鼠标和键盘交互，提供真人仿真的输入模拟。\n\n## 概述\n\n输入命令模块提供模拟用户输入的功能，包括鼠标移动、点击、键盘输入和按键操作。\n\n::: pydoll.commands.input_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n输入命令由元素交互方法使用，可直接用于高级输入场景：\n\n```python\nfrom pydoll.commands.input_commands import dispatch_mouse_event, dispatch_key_event\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Simulate mouse click\nconnection = ConnectionHandler()\nawait dispatch_mouse_event(\n    connection, \n    type=\"mousePressed\", \n    x=100, \n    y=200, \n    button=\"left\"\n)\n\n# Simulate keyboard typing\nawait dispatch_key_event(\n    connection,\n    type=\"keyDown\",\n    key=\"Enter\"\n)\n```\n\n## 主要功能\n\n输入命令模块提供以下函数：\n\n### 鼠标事件\n- `dispatch_mouse_event()` - 鼠标点击、移动和滚轮事件\n- 鼠标按键状态（左键、右键、中键）\n- 基于坐标的定位\n- 拖放操作\n\n\n### 键盘事件\n- `dispatch_key_event()` - 键盘按下和释放事件\n- `insert_text()` - 直接插入文本\n- 特殊键处理（Enter、Tab、箭头键等）\n- 修饰键（Ctrl、Alt、Shift）\n\n\n### 触摸事件\n- 触摸屏模拟\n- 多点触控手势\n- 触摸坐标和压力控制\n\n## 仿真行为\n\n输入命令支持仿真行为模式：\n\n- 平滑的鼠标移动曲线\n- 真实的打字速度和模式\n- 操作之间随机的微延迟\n- 压力感应触摸事件\n\n!!! tip \"Element Methods\"\n    For most use cases, use the higher-level element methods like `element.click()` and `element.type_text()` which provide a more convenient API and handle common scenarios automatically. ","docs/zh/api/commands/network.md":"# 网络命令\n\n网络命令提供对网络请求、响应和浏览器网络行为的全面控制。\n\n## 概述\n\n网络命令模块支持请求拦截、响应修改、Cookie 管理和网络监控功能。\n\n::: pydoll.commands.network_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n网络命令用于请求拦截和网络监控等高级场景：\n\n```python\nfrom pydoll.commands.network_commands import enable, set_request_interception\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable network monitoring\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Enable request interception\nawait set_request_interception(connection, patterns=[{\"urlPattern\": \"*\"}])\n```\n\n## 主要功能\n\n网络命令模块提供以下功能：\n\n\n### 请求管理\n- `enable()` / `disable()` - 启用/禁用网络监控\n- `set_request_interception()` - 拦截并修改请求\n- `continue_intercepted_request()` - 继续或修改拦截的请求\n- `get_request_post_data()` - 获取请求体数据\n\n\n### 响应处理\n- `get_response_body()` - 获取响应内容\n- `fulfill_request()` - 提供自定义响应\n- `fail_request()` - 模拟网络异常\n\n### Cookie 管理\n- `get_cookies()` - 获取浏览器 Cookie\n- `set_cookies()` - 设置浏览器 Cookie\n- `delete_cookies()` - 删除指定 Cookie\n- `clear_browser_cookies()` - 清除所有 Cookie\n\n### 缓存控制\n- `clear_browser_cache()` - 清除浏览器缓存\n- `set_cache_disabled()` - 禁用浏览器缓存\n- `get_response_body_for_interception()` - 获取缓存的响应\n\n### 安全和标头\n- `set_user_agent_override()` - 覆盖用户代理\n- `set_extra_http_headers()` - 添加自定义标头\n- `emulate_network_conditions()` - 模拟网络连接状况\n\n## 高级用例\n\n### 请求拦截\n\n```python\n# 拦截修改请求\nawait set_request_interception(connection, patterns=[\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"}\n])\n\n# 拦截请求处理\nasync def handle_request(request):\n    if \"api/login\" in request.url:\n        # 修改请求头\n        headers = request.headers.copy()\n        headers[\"Authorization\"] = \"Bearer token\"\n        await continue_intercepted_request(\n            connection, \n            request_id=request.request_id,\n            headers=headers\n        )\n```\n\n### 响应模拟\n```python\n# 模拟 API 响应\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers={\"Content-Type\": \"application/json\"},\n    body='{\"status\": \"success\"}'\n)\n```\n\n!!! warning \"Performance Impact\"\n    Network interception can impact page loading performance. Use selectively and disable when not needed. ","docs/zh/api/commands/page.md":"# 页面命令\n\n页面命令处理页面导航、生命周期事件和页面操作。\n\n## 概述\n\n页面命令模块提供页面间导航、管理页面生命周期、处理 JavaScript 执行以及控制页面行为的功能。\n\n::: pydoll.commands.page_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n“Tab”类广泛使用页面命令进行导航和页面管理：\n\n```python\nfrom pydoll.commands.page_commands import navigate, reload, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Navigate to a URL\nconnection = ConnectionHandler()\nawait enable(connection)  # Enable page events\nawait navigate(connection, url=\"https://example.com\")\n\n# Reload the page\nawait reload(connection)\n```\n\n## 关键功能\n\n页面命令模块提供以下函数：\n\n### 导航\n- `navigate()` - 访问URL\n- `reload()` - 重新加载当前页面\n- `go_back()` - 后退一步\n- `go_forward()` - 前进一步\n- `stop_loading()` - 停止页面加载\n\n### 页面生命周期\n- `enable()` / `disable()` - 启用/禁用页面事件\n- `get_frame_tree()` - 获取页面框架结构\n- `get_navigation_history()` - 获取导航历史记录\n\n### 内容管理\n- `get_resource_content()` - 获取页面资源内容\n- `search_in_resource()` - 在页面资源内搜索\n- `set_document_content()` - 设置页面 HTML 内容\n\n### 截图和 PDF\n- `capture_screenshot()` - 页面截图\n- `print_to_pdf()` - 将页面保存为PDF\n- `capture_snapshot()` - 页面快照\n\n### JavaScript 执行\n- `add_script_to_evaluate_on_new_document()` - 添加启动脚本(在网页加载前注入js)\n- `remove_script_to_evaluate_on_new_document()` - 移除启动脚本\n\n### 页面设置\n- `set_lifecycle_events_enabled()` - 控制生命周期事件\n- `set_ad_blocking_enabled()` - 启用/禁用广告拦截\n- `set_bypass_csp()` - 绕过内容安全策略\n\n## 高级功能\n### 框架管理\n\n```python\n# Get all frames in the page\nframe_tree = await get_frame_tree(connection)\nfor frame in frame_tree.child_frames:\n    print(f\"Frame: {frame.frame.url}\")\n```\n\n### 资源拦截\n```python\n# Get resource content\ncontent = await get_resource_content(\n    connection, \n    frame_id=frame_id, \n    url=\"https://example.com/script.js\"\n)\n```\n\n### 页面事件\n页面命令可与各种页面事件配合使用：\n- `Page.loadEventFired` - 页面加载完成\n- `Page.domContentEventFired` - DOM 内容已加载\n- `Page.frameNavigated` - 框架访问结束\n- `Page.frameStartedLoading` - 框架加载开始\n\n\n!!! 小提示“Tab 类集成”\n大多数页面操作都可以通过 `Tab` 类方法实现，例如 `tab.go_to()`、`tab.reload()` 和 `tab.screenshot()`，这些方法提供了更便捷的 API。","docs/zh/api/commands/runtime.md":"# 运行时命令\n\n运行时命令提供 JavaScript 执行功能和运行时环境管理。\n\n## 概述\n\n运行时命令模块支持在浏览器上下文中执行 JavaScript 代码、检查对象以及控制运行时环境。\n\n::: pydoll.commands.runtime_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n运行时命令用于 JavaScript 执行和运行时管理：\n\n```python\nfrom pydoll.commands.runtime_commands import evaluate, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable runtime events\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Execute JavaScript\nresult = await evaluate(\n    connection, \n    expression=\"document.title\",\n    return_by_value=True\n)\nprint(result.value)  # Page title\n```\n\n## 主要功能\n\n运行时命令模块提供以下功能：\n\n### JavaScript 执行\n- `evaluate()` - 执行 JavaScript 表达式\n- `call_function_on()` - 调用对象上的函数\n- `compile_script()` - 编译 JavaScript 以供复用\n- `run_script()` - 运行已编译的脚本\n\n### 对象管理\n- `get_properties()` - 获取对象属性\n- `release_object()` - 释放对象引用\n- `release_object_group()` - 释放对象组\n\n### 运行时控制\n- `enable()` / `disable()` - 启用/禁用运行时事件\n- `discard_console_entries()` - 清除控制台记录\n- `set_custom_object_formatter_enabled()` - 启用自定义格式化程序\n\n### 异常处理\n- `set_async_call_stack_depth()` - 设置调用堆栈深度\n- 异常捕获和报告\n- 错误对象检查\n\n## 高级用法\n\n### 复杂的 JavaScript 执行\n\n```python\n# 执行带有错误处理的复杂 JavaScript\nscript = \"\"\"\ntry {\n    const elements = document.querySelectorAll('.item');\n    return Array.from(elements).map(el => ({\n        text: el.textContent,\n        href: el.href\n    }));\n} catch (error) {\n    return { error: error.message };\n}\n\"\"\"\n\nresult = await evaluate(\n    connection,\n    expression=script,\n    return_by_value=True,\n    await_promise=True\n)\n```\n\n### 对象检查\n```python\n# Get detailed object properties\nproperties = await get_properties(\n    connection,\n    object_id=object_id,\n    own_properties=True,\n    accessor_properties_only=False\n)\n\nfor prop in properties:\n    print(f\"{prop.name}: {prop.value}\")\n```\n\n### 控制台集成\n运行时命令与浏览器控制台集成：\n- 控制台消息和错误\n- 控制台 API 方法调用\n- 自定义控制台格式化程序\n\n!!! note \"Performance Considerations\"\n    JavaScript execution through runtime commands can be slower than native browser execution. Use judiciously for complex operations. ","docs/zh/api/commands/storage.md":"# 存储命令\n\n存储命令提供全面的浏览器存储管理，包括 Cookie、localStorage、sessionStorage 和 IndexedDB。\n\n## 概述\n\n存储命令模块支持管理所有浏览器存储机制，提供数据持久化和检索功能。\n\n::: pydoll.commands.storage_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n存储命令用于跨不同机制管理浏览器存储：\n\n```python\nfrom pydoll.commands.storage_commands import get_cookies, set_cookies, clear_data_for_origin\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get cookies for a domain\nconnection = ConnectionHandler()\ncookies = await get_cookies(connection, urls=[\"https://example.com\"])\n\n# Set a new cookie\nawait set_cookies(connection, cookies=[{\n    \"name\": \"session_id\",\n    \"value\": \"abc123\",\n    \"domain\": \"example.com\",\n    \"path\": \"/\",\n    \"httpOnly\": True,\n    \"secure\": True\n}])\n\n# Clear all storage for an origin\nawait clear_data_for_origin(\n    connection,\n    origin=\"https://example.com\",\n    storage_types=\"all\"\n)\n```\n\n## 关键功能\n\n存储命令模块提供以下函数：\n\n### Cookie 管理\n- `get_cookies()` - 通过 URL 或域名获取 Cookie\n- `set_cookies()` - 设置新 Cookie\n- `delete_cookies()` - 删除特定 Cookie\n- `clear_cookies()` - 清除所有 Cookie\n\n\n### 本地存储\n- `get_dom_storage_items()` - 获取localStorage\n- `set_dom_storage_item()` - 设置localStorage\n- `remove_dom_storage_item()` - 移除localStorage\n- `clear_dom_storage()` - 清除localStorage\n\n### 会话存储\n- 会话存储操作（类似于本地存储）\n- 特定会话的数据管理\n- 选项卡隔离存储\n\n### IndexedDB\n- `get_database_names()` - 获取 IndexedDB 数据库\n- `request_database()` - 访问数据库结构\n- `request_data()` - 查询数据库数据\n- `clear_object_store()` - 清除对象存储\n\n### 缓存存储\n- `request_cache_names()` - 获取缓存名称\n- `request_cached_response()` - 获取缓存响应\n- `delete_cache()` - 删除缓存条目\n\n### 应用程序缓存（已弃用）\n- 支持旧版应用程序缓存\n- 基于清单的缓存\n\n## 高级功能\n\n### 批量操作\n```python\n# Clear all storage types for multiple origins\norigins = [\"https://example.com\", \"https://api.example.com\"]\nfor origin in origins:\n    await clear_data_for_origin(\n        connection,\n        origin=origin,\n        storage_types=\"cookies,local_storage,session_storage,indexeddb\"\n    )\n```\n\n### 存储配额\n```python\n# Get storage quota information\nquota_info = await get_usage_and_quota(connection, origin=\"https://example.com\")\nprint(f\"Used: {quota_info.usage} bytes\")\nprint(f\"Quota: {quota_info.quota} bytes\")\n```\n\n### Cross-Origin 存储\n```python\n# Manage storage across different origins\nawait set_cookies(connection, cookies=[{\n    \"name\": \"cross_site_token\",\n    \"value\": \"token123\",\n    \"domain\": \".example.com\",  # Applies to all subdomains\n    \"sameSite\": \"None\",\n    \"secure\": True\n}])\n```\n\n## 存储类型\n\n该模块支持多种存储机制：\n\n| 存储类型 | 持久性 | 范围 | 容量 |\n|-----------|----------|----------|----------|\n| Cookies | 持久性 | 域/路径 | 每个 cookie 约 4KB |\n| localStorage | 持久性 | 来源 | 约 5-10MB |\n| sessionStorage | 会话 | Tab | 约 5-10MB |\n| IndexedDB | 持久性 | 来源 | 大容量 (GB+) |\n| Cache API | 持久性 | 来源 | 大容量 |\n\n!!! warning \"Privacy Considerations\"\n    Storage operations can affect user privacy. Always handle storage data responsibly and in compliance with privacy regulations. ","docs/zh/api/commands/target.md":"# Target命令\n\nTarget命令管理浏览器目标，包括标签页、窗口和其他浏览上下文。\n\n## 概述\n\nTarget命令模块提供创建、管理和控制浏览器目标（例如标签页、弹出窗口和服务工作线程）的功能。\n\n::: pydoll.commands.target_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\nTarget命令由浏览器类内部使用，用于管理标签页和窗口：\n\n```python\nfrom pydoll.commands.target_commands import get_targets, create_target, close_target\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get all browser targets\nconnection = ConnectionHandler()\ntargets = await get_targets(connection)\n\n# Create a new tab\nnew_target = await create_target(connection, url=\"https://example.com\")\n\n# Close a target\nawait close_target(connection, target_id=new_target.target_id)\n```\n\n## 主要功能\n\nTarget命令模块提供以下功能：\n\n\n### Target管理\n- `get_targets()` - 列出所有浏览器Target\n- `create_target()` - 创建新的标签页或窗口\n- `close_target()` - 关闭特定Target\n- `activate_target()` - 将Target置于前台\n\n### Target 信息\n- `get_target_info()` - 获取详细的Target信息\n- Target类型：页面、background_page、service_worker、浏览器\n- Target状态：已连接、已分离、崩溃\n\n### Session 管理\n- `attach_to_target()` - 附加到Target进行控制\n- `detach_from_target()` - 分离Target\n- `send_message_to_target()` - 向Target发送命令\n\n### 浏览器上下文\n- `create_browser_context()` - 创建独立的浏览器上下文\n- `dispose_browser_context()` - 移除浏览器上下文\n- `get_browser_contexts()` - 列出浏览器上下文\n\n## 目标类型\n\n可以管理不同类型的目标：\n\n### 页面 Targets\n```python\n# Create a new tab\npage_target = await create_target(\n    connection,\n    url=\"https://example.com\",\n    width=1920,\n    height=1080,\n    browser_context_id=None  # Default context\n)\n```\n\n### 弹窗\n```python\n# Create a popup window\npopup_target = await create_target(\n    connection,\n    url=\"https://popup.example.com\",\n    width=800,\n    height=600,\n    new_window=True\n)\n```\n\n### 无痕上下文\n```python\n# Create incognito browser context\nincognito_context = await create_browser_context(connection)\n\n# Create tab in incognito context\nincognito_tab = await create_target(\n    connection,\n    url=\"https://private.example.com\",\n    browser_context_id=incognito_context.browser_context_id\n)\n```\n\n!!! info \"Headless 与 Headed：上下文如何呈现\"\n    浏览器上下文是逻辑上的隔离环境。在 Headed 模式下，在新的上下文中创建的第一个页面通常会打开一个新的系统窗口。 在 Headless 模式下不会显示窗口——隔离依然存在于后台（cookies、storage、缓存与认证状态仍按上下文分离）。在 CI/Headless 环境中优先使用上下文以获得更高性能与更干净的隔离。\n\n## 高级特性\n\n### 目标事件\nTarget命令可与各种Target事件配合使用：\n- `Target.targetCreated` - 新Target创建\n- `Target.targetDestroyed` - Target关闭\n- `Target.targetInfoChanged` - Target信息更新\n- `Target.targetCrashed` - Target崩溃\n\n### 多Target协调\n\n```python\n# Manage multiple tabs\ntargets = await get_targets(connection)\npage_targets = [t for t in targets if t.type == \"page\"]\n\nfor target in page_targets:\n    # Perform operations on each tab\n    await activate_target(connection, target_id=target.target_id)\n    # ... do work in this tab\n```\n\n### Target 隔离\n```python\n# Create isolated browser context for testing\ntest_context = await create_browser_context(connection)\n\n# All targets in this context are isolated\ntest_tab1 = await create_target(\n    connection, \n    url=\"https://test1.com\",\n    browser_context_id=test_context.browser_context_id\n)\n\ntest_tab2 = await create_target(\n    connection,\n    url=\"https://test2.com\", \n    browser_context_id=test_context.browser_context_id\n)\n```\n\n!!! note \"Browser Integration\"\n    Target commands are primarily used internally by the `Chrome` and `Edge` browser classes. The high-level browser APIs provide more convenient methods for tab management. "},"items":[{"name":"browser.md","path":"docs/en/api/commands/browser.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/en/api/commands/browser.md","title":"Command: /browser","category":"command-prompt","format":"markdown","content":"# Browser Commands\n\nBrowser commands provide low-level control over browser instances and their configuration.\n\n## Overview\n\nThe browser commands module handles browser-level operations such as version information, target management, and browser-wide settings.\n\n::: pydoll.commands.browser_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nBrowser commands are typically used internally by browser classes to manage browser instances:\n\n```python\nfrom pydoll.commands.browser_commands import get_version\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get browser version information\nconnection = ConnectionHandler()\nversion_info = await get_version(connection)\n```\n\n## Available Commands\n\nThe browser commands module provides functions for:\n\n- Getting browser version and user agent information\n- Managing browser targets (tabs, windows)\n- Controlling browser-wide settings and permissions\n- Handling browser lifecycle events\n\n!!! note \"Internal Usage\"\n    These commands are primarily used internally by the `Chrome` and `Edge` browser classes. Direct usage is recommended only for advanced scenarios. ","isInternal":false,"tokens":309,"sizeBytes":1234},{"name":"dom.md","path":"docs/en/api/commands/dom.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/en/api/commands/dom.md","title":"Command: /dom","category":"command-prompt","format":"markdown","content":"# DOM Commands\n\nDOM commands provide comprehensive functionality for interacting with the Document Object Model of web pages.\n\n## Overview\n\nThe DOM commands module is one of the most important modules in Pydoll, providing all the functionality needed to find, interact with, and manipulate HTML elements on web pages.\n\n::: pydoll.commands.dom_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nDOM commands are used extensively by the `WebElement` class and element finding methods:\n\n```python\nfrom pydoll.commands.dom_commands import query_selector, get_attributes\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Find element and get its attributes\nconnection = ConnectionHandler()\nnode_id = await query_selector(connection, selector=\"#username\")\nattributes = await get_attributes(connection, node_id=node_id)\n```\n\n## Key Functionality\n\nThe DOM commands module provides functions for:\n\n### Element Finding\n- `query_selector()` - Find single element by CSS selector\n- `query_selector_all()` - Find multiple elements by CSS selector\n- `get_document()` - Get the document root node\n\n### Element Interaction\n- `click_element()` - Click on elements\n- `focus_element()` - Focus elements\n- `set_attribute_value()` - Set element attributes\n- `get_attributes()` - Get element attributes\n\n### Element Information\n- `get_box_model()` - Get element positioning and dimensions\n- `describe_node()` - Get detailed element information\n- `get_outer_html()` - Get element HTML content\n\n### DOM Manipulation\n- `remove_node()` - Remove elements from DOM\n- `set_node_value()` - Set element values\n- `request_child_nodes()` - Get child elements\n\n!!! tip \"High-Level APIs\"\n    While these commands provide powerful low-level access, most users should use the higher-level `WebElement` class methods like `click()`, `type_text()`, and `get_attribute()` which use these commands internally. ","isInternal":false,"tokens":500,"sizeBytes":1997},{"name":"fetch.md","path":"docs/en/api/commands/fetch.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/en/api/commands/fetch.md","title":"Command: /fetch","category":"command-prompt","format":"markdown","content":"# Fetch Commands\n\nFetch commands provide advanced network request handling and interception capabilities using the Fetch API domain.\n\n## Overview\n\nThe fetch commands module enables sophisticated network request management, including request modification, response interception, and authentication handling.\n\n::: pydoll.commands.fetch_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nFetch commands are used for advanced network interception and request handling:\n\n```python\nfrom pydoll.commands.fetch_commands import enable, request_paused, continue_request\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable fetch domain\nconnection = ConnectionHandler()\nawait enable(connection, patterns=[{\n    \"urlPattern\": \"*\",\n    \"requestStage\": \"Request\"\n}])\n\n# Handle paused requests\nasync def handle_paused_request(request_id, request):\n    # Modify request or continue as-is\n    await continue_request(connection, request_id=request_id)\n```\n\n## Key Functionality\n\nThe fetch commands module provides functions for:\n\n### Request Interception\n- `enable()` - Enable fetch domain with patterns\n- `disable()` - Disable fetch domain\n- `continue_request()` - Continue intercepted requests\n- `fail_request()` - Fail requests with specific errors\n\n### Request Modification\n- Modify request headers\n- Change request URLs\n- Alter request methods (GET, POST, etc.)\n- Modify request bodies\n\n### Response Handling\n- `fulfill_request()` - Provide custom responses\n- `get_response_body()` - Get response content\n- Response header modification\n- Response status code control\n\n### Authentication\n- `continue_with_auth()` - Handle authentication challenges\n- Basic authentication support\n- Custom authentication flows\n\n## Advanced Features\n\n### Pattern-Based Interception\n```python\n# Intercept specific URL patterns\npatterns = [\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"},\n    {\"urlPattern\": \"*.js\", \"requestStage\": \"Response\"},\n    {\"urlPattern\": \"https://example.com/*\", \"requestStage\": \"Request\"}\n]\n\nawait enable(connection, patterns=patterns)\n```\n\n### Request Modification\n```python\n# Modify intercepted requests\nasync def modify_request(request_id, request):\n    # Add authentication header\n    headers = request.headers.copy()\n    headers[\"Authorization\"] = \"Bearer token123\"\n    \n    # Continue with modified headers\n    await continue_request(\n        connection,\n        request_id=request_id,\n        headers=headers\n    )\n```\n\n### Response Mocking\n```python\n# Mock API responses\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers=[\n        {\"name\": \"Content-Type\", \"value\": \"application/json\"},\n        {\"name\": \"Access-Control-Allow-Origin\", \"value\": \"*\"}\n    ],\n    body='{\"status\": \"success\", \"data\": {\"mocked\": true}}'\n)\n```\n\n### Authentication Handling\n```python\n# Handle authentication challenges\nawait continue_with_auth(\n    connection,\n    request_id=request_id,\n    auth_challenge_response={\n        \"response\": \"ProvideCredentials\",\n        \"username\": \"user\",\n        \"password\": \"pass\"\n    }\n)\n```\n\n## Request Stages\n\nFetch commands can intercept requests at different stages:\n\n| Stage | Description | Use Cases |\n|-------|-------------|-----------|\n| Request | Before request is sent | Modify headers, URL, method |\n| Response | After response received | Mock responses, modify content |\n\n## Error Handling\n\n```python\n# Fail requests with specific errors\nawait fail_request(\n    connection,\n    request_id=request_id,\n    error_reason=\"ConnectionRefused\"  # or \"AccessDenied\", \"TimedOut\", etc.\n)\n```\n\n## Integration with Network Commands\n\nFetch commands work alongside network commands but provide more granular control:\n\n- **Network Commands**: Broader network monitoring and control\n- **Fetch Commands**: Specific request/response interception and modification\n\n!!! tip \"Performance Considerations\"\n    Fetch interception can impact page loading performance. Use specific URL patterns and disable when not needed to minimize overhead. ","isInternal":false,"tokens":1036,"sizeBytes":4144},{"name":"index.md","path":"docs/en/api/commands/index.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/en/api/commands/index.md","title":"Command: /index","category":"command-prompt","format":"markdown","content":"# Commands Overview\n\nThe Commands module provides high-level interfaces for interacting with Chrome DevTools Protocol (CDP) domains. Each command module corresponds to a specific CDP domain and provides methods to execute various browser operations.\n\n## Available Command Modules\n\n### Browser Commands\n- **Module**: `browser_commands.py`\n- **Purpose**: Browser-level operations and window management\n- **Documentation**: [Browser Commands](browser.md)\n\n### DOM Commands\n- **Module**: `dom_commands.py`\n- **Purpose**: DOM tree manipulation and element operations\n- **Documentation**: [DOM Commands](dom.md)\n\n### Input Commands\n- **Module**: `input_commands.py`\n- **Purpose**: Input event simulation (keyboard, mouse, touch)\n- **Documentation**: [Input Commands](input.md)\n\n### Network Commands\n- **Module**: `network_commands.py`\n- **Purpose**: Network monitoring and request interception\n- **Documentation**: [Network Commands](network.md)\n\n### Page Commands\n- **Module**: `page_commands.py`\n- **Purpose**: Page lifecycle management and navigation\n- **Documentation**: [Page Commands](page.md)\n\n### Runtime Commands\n- **Module**: `runtime_commands.py`\n- **Purpose**: JavaScript execution and runtime management\n- **Documentation**: [Runtime Commands](runtime.md)\n\n### Storage Commands\n- **Module**: `storage_commands.py`\n- **Purpose**: Browser storage access (cookies, local storage, etc.)\n- **Documentation**: [Storage Commands](storage.md)\n\n### Target Commands\n- **Module**: `target_commands.py`\n- **Purpose**: Target management and tab operations\n- **Documentation**: [Target Commands](target.md)\n\n### Fetch Commands\n- **Module**: `fetch_commands.py`\n- **Purpose**: Network request interception and modification\n- **Documentation**: [Fetch Commands](fetch.md)\n\n## Usage Pattern\n\nCommands are typically accessed through the browser or tab instances:\n\n```python\nfrom pydoll.browser.chromium import Chrome\n\n# Initialize browser\nbrowser = Chrome()\nawait browser.start()\n\n# Get active tab\ntab = await browser.get_active_tab()\n\n# Use commands through the tab\nawait tab.navigate(\"https://example.com\")\nelement = await tab.find(id=\"button\")\nawait element.click()\n```\n\n## Command Structure\n\nEach command module follows a consistent pattern:\n- **Static methods**: For direct command execution\n- **Type hints**: Full type safety with protocol types\n- **Error handling**: Proper exception handling for CDP errors\n- **Documentation**: Comprehensive docstrings with examples ","isInternal":false,"tokens":616,"sizeBytes":2464},{"name":"input.md","path":"docs/en/api/commands/input.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/en/api/commands/input.md","title":"Command: /input","category":"command-prompt","format":"markdown","content":"# Input Commands\n\nInput commands handle mouse and keyboard interactions, providing human-like input simulation.\n\n## Overview\n\nThe input commands module provides functionality for simulating user input including mouse movements, clicks, keyboard typing, and key presses.\n\n::: pydoll.commands.input_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nInput commands are used by element interaction methods and can be used directly for advanced input scenarios:\n\n```python\nfrom pydoll.commands.input_commands import dispatch_mouse_event, dispatch_key_event\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Simulate mouse click\nconnection = ConnectionHandler()\nawait dispatch_mouse_event(\n    connection, \n    type=\"mousePressed\", \n    x=100, \n    y=200, \n    button=\"left\"\n)\n\n# Simulate keyboard typing\nawait dispatch_key_event(\n    connection,\n    type=\"keyDown\",\n    key=\"Enter\"\n)\n```\n\n## Key Functionality\n\nThe input commands module provides functions for:\n\n### Mouse Events\n- `dispatch_mouse_event()` - Mouse clicks, movements, and wheel events\n- Mouse button states (left, right, middle)\n- Coordinate-based positioning\n- Drag and drop operations\n\n### Keyboard Events\n- `dispatch_key_event()` - Key press and release events\n- `insert_text()` - Direct text insertion\n- Special key handling (Enter, Tab, Arrow keys, etc.)\n- Modifier keys (Ctrl, Alt, Shift)\n\n### Touch Events\n- Touch screen simulation\n- Multi-touch gestures\n- Touch coordinates and pressure\n\n## Human-like Behavior\n\nThe input commands support human-like behavior patterns:\n\n- Natural mouse movement curves\n- Realistic typing speeds and patterns\n- Random micro-delays between actions\n- Pressure-sensitive touch events\n\n!!! tip \"Element Methods\"\n    For most use cases, use the higher-level element methods like `element.click()` and `element.type_text()` which provide a more convenient API and handle common scenarios automatically. ","isInternal":false,"tokens":507,"sizeBytes":2026},{"name":"network.md","path":"docs/en/api/commands/network.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/en/api/commands/network.md","title":"Command: /network","category":"command-prompt","format":"markdown","content":"# Network Commands\n\nNetwork commands provide comprehensive control over network requests, responses, and browser networking behavior.\n\n## Overview\n\nThe network commands module enables request interception, response modification, cookie management, and network monitoring capabilities.\n\n::: pydoll.commands.network_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nNetwork commands are used for advanced scenarios like request interception and network monitoring:\n\n```python\nfrom pydoll.commands.network_commands import enable, set_request_interception\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable network monitoring\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Enable request interception\nawait set_request_interception(connection, patterns=[{\"urlPattern\": \"*\"}])\n```\n\n## Key Functionality\n\nThe network commands module provides functions for:\n\n### Request Management\n- `enable()` / `disable()` - Enable/disable network monitoring\n- `set_request_interception()` - Intercept and modify requests\n- `continue_intercepted_request()` - Continue or modify intercepted requests\n- `get_request_post_data()` - Get request body data\n\n### Response Handling\n- `get_response_body()` - Get response content\n- `fulfill_request()` - Provide custom responses\n- `fail_request()` - Simulate network failures\n\n### Cookie Management\n- `get_cookies()` - Get browser cookies\n- `set_cookies()` - Set browser cookies\n- `delete_cookies()` - Delete specific cookies\n- `clear_browser_cookies()` - Clear all cookies\n\n### Cache Control\n- `clear_browser_cache()` - Clear browser cache\n- `set_cache_disabled()` - Disable browser cache\n- `get_response_body_for_interception()` - Get cached responses\n\n### Security & Headers\n- `set_user_agent_override()` - Override user agent\n- `set_extra_http_headers()` - Add custom headers\n- `emulate_network_conditions()` - Simulate network conditions\n\n## Advanced Use Cases\n\n### Request Interception\n```python\n# Intercept and modify requests\nawait set_request_interception(connection, patterns=[\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"}\n])\n\n# Handle intercepted request\nasync def handle_request(request):\n    if \"api/login\" in request.url:\n        # Modify request headers\n        headers = request.headers.copy()\n        headers[\"Authorization\"] = \"Bearer token\"\n        await continue_intercepted_request(\n            connection, \n            request_id=request.request_id,\n            headers=headers\n        )\n```\n\n### Response Mocking\n```python\n# Mock API responses\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers={\"Content-Type\": \"application/json\"},\n    body='{\"status\": \"success\"}'\n)\n```\n\n!!! warning \"Performance Impact\"\n    Network interception can impact page loading performance. Use selectively and disable when not needed. ","isInternal":false,"tokens":744,"sizeBytes":2976},{"name":"page.md","path":"docs/en/api/commands/page.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/en/api/commands/page.md","title":"Command: /page","category":"command-prompt","format":"markdown","content":"# Page Commands\n\nPage commands handle page navigation, lifecycle events, and page-level operations.\n\n## Overview\n\nThe page commands module provides functionality for navigating between pages, managing page lifecycle, handling JavaScript execution, and controlling page behavior.\n\n::: pydoll.commands.page_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nPage commands are used extensively by the `Tab` class for navigation and page management:\n\n```python\nfrom pydoll.commands.page_commands import navigate, reload, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Navigate to a URL\nconnection = ConnectionHandler()\nawait enable(connection)  # Enable page events\nawait navigate(connection, url=\"https://example.com\")\n\n# Reload the page\nawait reload(connection)\n```\n\n## Key Functionality\n\nThe page commands module provides functions for:\n\n### Navigation\n- `navigate()` - Navigate to URLs\n- `reload()` - Reload current page\n- `go_back()` - Navigate back in history\n- `go_forward()` - Navigate forward in history\n- `stop_loading()` - Stop page loading\n\n### Page Lifecycle\n- `enable()` / `disable()` - Enable/disable page events\n- `get_frame_tree()` - Get page frame structure\n- `get_navigation_history()` - Get navigation history\n\n### Content Management\n- `get_resource_content()` - Get page resource content\n- `search_in_resource()` - Search within page resources\n- `set_document_content()` - Set page HTML content\n\n### Screenshots & PDF\n- `capture_screenshot()` - Take page screenshots\n- `print_to_pdf()` - Generate PDF from page\n- `capture_snapshot()` - Capture page snapshots\n\n### JavaScript Execution\n- `add_script_to_evaluate_on_new_document()` - Add startup scripts\n- `remove_script_to_evaluate_on_new_document()` - Remove startup scripts\n\n### Page Settings\n- `set_lifecycle_events_enabled()` - Control lifecycle events\n- `set_ad_blocking_enabled()` - Enable/disable ad blocking\n- `set_bypass_csp()` - Bypass Content Security Policy\n\n## Advanced Features\n\n### Frame Management\n```python\n# Get all frames in the page\nframe_tree = await get_frame_tree(connection)\nfor frame in frame_tree.child_frames:\n    print(f\"Frame: {frame.frame.url}\")\n```\n\n### Resource Interception\n```python\n# Get resource content\ncontent = await get_resource_content(\n    connection, \n    frame_id=frame_id, \n    url=\"https://example.com/script.js\"\n)\n```\n\n### Page Events\nThe page commands work with various page events:\n- `Page.loadEventFired` - Page load completed\n- `Page.domContentEventFired` - DOM content loaded\n- `Page.frameNavigated` - Frame navigation\n- `Page.frameStartedLoading` - Frame loading started\n\n!!! tip \"Tab Class Integration\"\n    Most page operations are available through the `Tab` class methods like `tab.go_to()`, `tab.reload()`, and `tab.screenshot()` which provide a more convenient API. ","isInternal":false,"tokens":732,"sizeBytes":2928},{"name":"runtime.md","path":"docs/en/api/commands/runtime.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/en/api/commands/runtime.md","title":"Command: /runtime","category":"command-prompt","format":"markdown","content":"# Runtime Commands\n\nRuntime commands provide JavaScript execution capabilities and runtime environment management.\n\n## Overview\n\nThe runtime commands module enables JavaScript code execution, object inspection, and runtime environment control within browser contexts.\n\n::: pydoll.commands.runtime_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nRuntime commands are used for JavaScript execution and runtime management:\n\n```python\nfrom pydoll.commands.runtime_commands import evaluate, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable runtime events\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Execute JavaScript\nresult = await evaluate(\n    connection, \n    expression=\"document.title\",\n    return_by_value=True\n)\nprint(result.value)  # Page title\n```\n\n## Key Functionality\n\nThe runtime commands module provides functions for:\n\n### JavaScript Execution\n- `evaluate()` - Execute JavaScript expressions\n- `call_function_on()` - Call functions on objects\n- `compile_script()` - Compile JavaScript for reuse\n- `run_script()` - Run compiled scripts\n\n### Object Management\n- `get_properties()` - Get object properties\n- `release_object()` - Release object references\n- `release_object_group()` - Release object groups\n\n### Runtime Control\n- `enable()` / `disable()` - Enable/disable runtime events\n- `discard_console_entries()` - Clear console entries\n- `set_custom_object_formatter_enabled()` - Enable custom formatters\n\n### Exception Handling\n- `set_async_call_stack_depth()` - Set call stack depth\n- Exception capture and reporting\n- Error object inspection\n\n## Advanced Usage\n\n### Complex JavaScript Execution\n```python\n# Execute complex JavaScript with error handling\nscript = \"\"\"\ntry {\n    const elements = document.querySelectorAll('.item');\n    return Array.from(elements).map(el => ({\n        text: el.textContent,\n        href: el.href\n    }));\n} catch (error) {\n    return { error: error.message };\n}\n\"\"\"\n\nresult = await evaluate(\n    connection,\n    expression=script,\n    return_by_value=True,\n    await_promise=True\n)\n```\n\n### Object Inspection\n```python\n# Get detailed object properties\nproperties = await get_properties(\n    connection,\n    object_id=object_id,\n    own_properties=True,\n    accessor_properties_only=False\n)\n\nfor prop in properties:\n    print(f\"{prop.name}: {prop.value}\")\n```\n\n### Console Integration\nRuntime commands integrate with browser console:\n- Console messages and errors\n- Console API method calls\n- Custom console formatters\n\n!!! note \"Performance Considerations\"\n    JavaScript execution through runtime commands can be slower than native browser execution. Use judiciously for complex operations. ","isInternal":false,"tokens":700,"sizeBytes":2800},{"name":"storage.md","path":"docs/en/api/commands/storage.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/en/api/commands/storage.md","title":"Command: /storage","category":"command-prompt","format":"markdown","content":"# Storage Commands\n\nStorage commands provide comprehensive browser storage management including cookies, localStorage, sessionStorage, and IndexedDB.\n\n## Overview\n\nThe storage commands module enables management of all browser storage mechanisms, providing functionality for data persistence and retrieval.\n\n::: pydoll.commands.storage_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nStorage commands are used for managing browser storage across different mechanisms:\n\n```python\nfrom pydoll.commands.storage_commands import get_cookies, set_cookies, clear_data_for_origin\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get cookies for a domain\nconnection = ConnectionHandler()\ncookies = await get_cookies(connection, urls=[\"https://example.com\"])\n\n# Set a new cookie\nawait set_cookies(connection, cookies=[{\n    \"name\": \"session_id\",\n    \"value\": \"abc123\",\n    \"domain\": \"example.com\",\n    \"path\": \"/\",\n    \"httpOnly\": True,\n    \"secure\": True\n}])\n\n# Clear all storage for an origin\nawait clear_data_for_origin(\n    connection,\n    origin=\"https://example.com\",\n    storage_types=\"all\"\n)\n```\n\n## Key Functionality\n\nThe storage commands module provides functions for:\n\n### Cookie Management\n- `get_cookies()` - Get cookies by URL or domain\n- `set_cookies()` - Set new cookies\n- `delete_cookies()` - Delete specific cookies\n- `clear_cookies()` - Clear all cookies\n\n### Local Storage\n- `get_dom_storage_items()` - Get localStorage items\n- `set_dom_storage_item()` - Set localStorage item\n- `remove_dom_storage_item()` - Remove localStorage item\n- `clear_dom_storage()` - Clear localStorage\n\n### Session Storage\n- Session storage operations (similar to localStorage)\n- Session-specific data management\n- Tab-isolated storage\n\n### IndexedDB\n- `get_database_names()` - Get IndexedDB databases\n- `request_database()` - Access database structure\n- `request_data()` - Query database data\n- `clear_object_store()` - Clear object stores\n\n### Cache Storage\n- `request_cache_names()` - Get cache names\n- `request_cached_response()` - Get cached responses\n- `delete_cache()` - Delete cache entries\n\n### Application Cache (Deprecated)\n- Legacy application cache support\n- Manifest-based caching\n\n## Advanced Features\n\n### Bulk Operations\n```python\n# Clear all storage types for multiple origins\norigins = [\"https://example.com\", \"https://api.example.com\"]\nfor origin in origins:\n    await clear_data_for_origin(\n        connection,\n        origin=origin,\n        storage_types=\"cookies,local_storage,session_storage,indexeddb\"\n    )\n```\n\n### Storage Quotas\n```python\n# Get storage quota information\nquota_info = await get_usage_and_quota(connection, origin=\"https://example.com\")\nprint(f\"Used: {quota_info.usage} bytes\")\nprint(f\"Quota: {quota_info.quota} bytes\")\n```\n\n### Cross-Origin Storage\n```python\n# Manage storage across different origins\nawait set_cookies(connection, cookies=[{\n    \"name\": \"cross_site_token\",\n    \"value\": \"token123\",\n    \"domain\": \".example.com\",  # Applies to all subdomains\n    \"sameSite\": \"None\",\n    \"secure\": True\n}])\n```\n\n## Storage Types\n\nThe module supports various storage mechanisms:\n\n| Storage Type | Persistence | Scope | Capacity |\n|--------------|-------------|-------|----------|\n| Cookies | Persistent | Domain/Path | ~4KB per cookie |\n| localStorage | Persistent | Origin | ~5-10MB |\n| sessionStorage | Session | Tab | ~5-10MB |\n| IndexedDB | Persistent | Origin | Large (GB+) |\n| Cache API | Persistent | Origin | Large |\n\n!!! warning \"Privacy Considerations\"\n    Storage operations can affect user privacy. Always handle storage data responsibly and in compliance with privacy regulations. ","isInternal":false,"tokens":939,"sizeBytes":3753},{"name":"target.md","path":"docs/en/api/commands/target.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/en/api/commands/target.md","title":"Command: /target","category":"command-prompt","format":"markdown","content":"# Target Commands\n\nTarget commands manage browser targets including tabs, windows, and other browsing contexts.\n\n## Overview\n\nThe target commands module provides functionality for creating, managing, and controlling browser targets such as tabs, popup windows, and service workers.\n\n::: pydoll.commands.target_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nTarget commands are used internally by browser classes to manage tabs and windows:\n\n```python\nfrom pydoll.commands.target_commands import get_targets, create_target, close_target\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get all browser targets\nconnection = ConnectionHandler()\ntargets = await get_targets(connection)\n\n# Create a new tab\nnew_target = await create_target(connection, url=\"https://example.com\")\n\n# Close a target\nawait close_target(connection, target_id=new_target.target_id)\n```\n\n## Key Functionality\n\nThe target commands module provides functions for:\n\n### Target Management\n- `get_targets()` - List all browser targets\n- `create_target()` - Create new tabs or windows\n- `close_target()` - Close specific targets\n- `activate_target()` - Bring target to foreground\n\n### Target Information\n- `get_target_info()` - Get detailed target information\n- Target types: page, background_page, service_worker, browser\n- Target states: attached, detached, crashed\n\n### Session Management\n- `attach_to_target()` - Attach to target for control\n- `detach_from_target()` - Detach from target\n- `send_message_to_target()` - Send commands to targets\n\n### Browser Context\n- `create_browser_context()` - Create isolated browser context\n- `dispose_browser_context()` - Remove browser context\n- `get_browser_contexts()` - List browser contexts\n\n## Target Types\n\nDifferent types of targets can be managed:\n\n### Page Targets\n```python\n# Create a new tab\npage_target = await create_target(\n    connection,\n    url=\"https://example.com\",\n    width=1920,\n    height=1080,\n    browser_context_id=None  # Default context\n)\n```\n\n### Popup Windows\n```python\n# Create a popup window\npopup_target = await create_target(\n    connection,\n    url=\"https://popup.example.com\",\n    width=800,\n    height=600,\n    new_window=True\n)\n```\n\n### Incognito Contexts\n```python\n# Create incognito browser context\nincognito_context = await create_browser_context(connection)\n\n# Create tab in incognito context\nincognito_tab = await create_target(\n    connection,\n    url=\"https://private.example.com\",\n    browser_context_id=incognito_context.browser_context_id\n)\n```\n\n!!! info \"Headless vs Headed: how contexts show up\"\n    Browser contexts are isolated logical environments. In headed mode, the first page created inside a new context will usually open in a new OS window. In headless mode, no window is shown — the isolation remains purely logical (cookies, storage, cache and auth state are still separate per context). Prefer contexts in headless/CI pipelines for performance and clean isolation.\n\n## Advanced Features\n\n### Target Events\nTarget commands work with various target events:\n- `Target.targetCreated` - New target created\n- `Target.targetDestroyed` - Target closed\n- `Target.targetInfoChanged` - Target information updated\n- `Target.targetCrashed` - Target crashed\n\n### Multi-Target Coordination\n```python\n# Manage multiple tabs\ntargets = await get_targets(connection)\npage_targets = [t for t in targets if t.type == \"page\"]\n\nfor target in page_targets:\n    # Perform operations on each tab\n    await activate_target(connection, target_id=target.target_id)\n    # ... do work in this tab\n```\n\n### Target Isolation\n```python\n# Create isolated browser context for testing\ntest_context = await create_browser_context(connection)\n\n# All targets in this context are isolated\ntest_tab1 = await create_target(\n    connection, \n    url=\"https://test1.com\",\n    browser_context_id=test_context.browser_context_id\n)\n\ntest_tab2 = await create_target(\n    connection,\n    url=\"https://test2.com\", \n    browser_context_id=test_context.browser_context_id\n)\n```\n\n!!! note \"Browser Integration\"\n    Target commands are primarily used internally by the `Chrome` and `Edge` browser classes. The high-level browser APIs provide more convenient methods for tab management. ","isInternal":false,"tokens":1084,"sizeBytes":4336},{"name":"browser.md","path":"docs/pt/api/commands/browser.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/pt/api/commands/browser.md","title":"Command: /browser","category":"command-prompt","format":"markdown","content":"# Comandos do Navegador\n\nOs comandos do navegador fornecem controle de baixo nível sobre as instâncias do navegador e sua configuração.\n\n## Visão Geral\n\nO módulo de comandos do navegador lida com operações em nível de navegador, como informações de versão, gerenciamento de alvos (targets) e configurações globais do navegador.\n\n::: pydoll.commands.browser_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos do navegador são tipicamente usados internamente pelas classes do navegador para gerenciar instâncias do navegador:\n\n```python\nfrom pydoll.commands.browser_commands import get_version\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Obter informações da versão do navegador\nconnection = ConnectionHandler()\nversion_info = await get_version(connection)\n```\n\n## Comandos Disponíveis\n\nO módulo de comandos do navegador fornece funções para:\n\n- Obter informações de versão do navegador e user agent\n- Gerenciar alvos (targets) do navegador (abas, janelas)\n- Controlar configurações e permissões globais do navegador\n- Lidar com eventos do ciclo de vida do navegador\n\n!!! note \"Uso Interno\"\n    Esses comandos são usados principalmente internamente pelas classes de navegador `Chrome` e `Edge`. O uso direto é recomendado apenas para cenários avançados.","isInternal":false,"tokens":349,"sizeBytes":1428},{"name":"dom.md","path":"docs/pt/api/commands/dom.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/pt/api/commands/dom.md","title":"Command: /dom","category":"command-prompt","format":"markdown","content":"# Comandos DOM\n\nOs comandos DOM fornecem funcionalidade abrangente para interagir com o Document Object Model (Modelo de Objeto de Documento) das páginas web.\n\n## Visão Geral\n\nO módulo de comandos DOM é um dos módulos mais importantes no Pydoll, fornecendo toda a funcionalidade necessária para encontrar, interagir com e manipular elementos HTML em páginas web.\n\n::: pydoll.commands.dom_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos DOM são usados extensivamente pela classe `WebElement` e pelos métodos de localização de elementos:\n\n```python\nfrom pydoll.commands.dom_commands import query_selector, get_attributes\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Encontrar elemento e obter seus atributos\nconnection = ConnectionHandler()\nnode_id = await query_selector(connection, selector=\"#username\")\nattributes = await get_attributes(connection, node_id=node_id)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos DOM fornece funções para:\n\n### Localização de Elementos\n- `query_selector()` - Encontrar elemento único por seletor CSS\n- `query_selector_all()` - Encontrar múltiplos elementos por seletor CSS\n- `get_document()` - Obter o nó raiz do documento\n\n### Interação com Elementos\n- `click_element()` - Clicar em elementos\n- `focus_element()` - Focar em elementos\n- `set_attribute_value()` - Definir atributos do elemento\n- `get_attributes()` - Obter atributos do elemento\n\n### Informações do Elemento\n- `get_box_model()` - Obter posicionamento e dimensões do elemento\n- `describe_node()` - Obter informações detalhadas do elemento\n- `get_outer_html()` - Obter o conteúdo HTML do elemento\n\n### Manipulação do DOM\n- `remove_node()` - Remover elementos do DOM\n- `set_node_value()` - Definir valores do elemento\n- `request_child_nodes()` - Obter elementos filhos\n\n!!! tip \"APIs de Alto Nível\"\n    Embora esses comandos forneçam acesso poderoso de baixo nível, a maioria dos usuários deve usar os métodos de nível superior da classe `WebElement`, como `click()`, `type_text()` e `get_attribute()`, que usam esses comandos internamente.","isInternal":false,"tokens":548,"sizeBytes":2227},{"name":"fetch.md","path":"docs/pt/api/commands/fetch.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/pt/api/commands/fetch.md","title":"Command: /fetch","category":"command-prompt","format":"markdown","content":"# Comandos Fetch\n\nOs comandos Fetch fornecem capacidades avançadas de manipulação e interceptação de requisições de rede usando o domínio da API Fetch.\n\n## Visão Geral\n\nO módulo de comandos fetch permite o gerenciamento sofisticado de requisições de rede, incluindo modificação de requisições, interceptação de respostas e manipulação de autenticação.\n\n::: pydoll.commands.fetch_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos Fetch são usados para interceptação avançada de rede e manipulação de requisições:\n\n```python\nfrom pydoll.commands.fetch_commands import enable, request_paused, continue_request\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Habilitar domínio fetch\nconnection = ConnectionHandler()\nawait enable(connection, patterns=[{\n    \"urlPattern\": \"*\",\n    \"requestStage\": \"Request\"\n}])\n\n# Lidar com requisições pausadas\nasync def handle_paused_request(request_id, request):\n    # Modificar requisição ou continuar como está\n    await continue_request(connection, request_id=request_id)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos fetch fornece funções para:\n\n### Interceptação de Requisição\n- `enable()` - Habilitar domínio fetch com padrões\n- `disable()` - Desabilitar domínio fetch\n- `continue_request()` - Continuar requisições interceptadas\n- `fail_request()` - Falhar requisições com erros específicos\n\n### Modificação de Requisição\n- Modificar cabeçalhos da requisição\n- Alterar URLs da requisição\n- Alterar métodos da requisição (GET, POST, etc.)\n- Modificar corpos (bodies) da requisição\n\n### Manipulação de Resposta\n- `fulfill_request()` - Fornecer respostas customizadas\n- `get_response_body()` - Obter conteúdo da resposta\n- Modificação de cabeçalho de resposta\n- Controle do código de status da resposta\n\n### Autenticação\n- `continue_with_auth()` - Lidar com desafios de autenticação\n- Suporte a autenticação básica\n- Fluxos de autenticação customizados\n\n## Recursos Avançados\n\n### Interceptação Baseada em Padrões\n```python\n# Interceptar padrões de URL específicos\npatterns = [\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"},\n    {\"urlPattern\": \"*.js\", \"requestStage\": \"Response\"},\n    {\"urlPattern\": \"https://example.com/*\", \"requestStage\": \"Request\"}\n]\n\nawait enable(connection, patterns=patterns)\n```\n\n### Modificação de Requisição\n```python\n# Modificar requisições interceptadas\nasync def modify_request(request_id, request):\n    # Adicionar cabeçalho de autenticação\n    headers = request.headers.copy()\n    headers[\"Authorization\"] = \"Bearer token123\"\n    \n    # Continuar com cabeçalhos modificados\n    await continue_request(\n        connection,\n        request_id=request_id,\n        headers=headers\n    )\n```\n\n### Simulação de Resposta (Mocking)\n```python\n# Simular (mockar) respostas de API\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers=[\n        {\"name\": \"Content-Type\", \"value\": \"application/json\"},\n        {\"name\": \"Access-Control-Allow-Origin\", \"value\": \"*\"}\n    ],\n    body='{\"status\": \"success\", \"data\": {\"mocked\": true}}'\n)\n```\n\n### Manipulação de Autenticação\n```python\n# Lidar com desafios de autenticação\nawait continue_with_auth(\n    connection,\n    request_id=request_id,\n    auth_challenge_response={\n        \"response\": \"ProvideCredentials\",\n        \"username\": \"user\",\n        \"password\": \"pass\"\n    }\n)\n```\n\n## Estágios da Requisição\n\nOs comandos Fetch podem interceptar requisições em diferentes estágios:\n\n| Estágio | Descrição | Casos de Uso |\n|-------|-------------|-----------|\n| Requisição | Antes da requisição ser enviada | Modificar cabeçalhos, URL, método |\n| Resposta | Após a resposta ser recebida | Simular respostas, modificar conteúdo |\n\n## Manipulação de Erros\n\n```python\n# Falhar requisições com erros específicos\nawait fail_request(\n    connection,\n    request_id=request_id,\n    error_reason=\"ConnectionRefused\"  # ou \"AccessDenied\", \"TimedOut\", etc.\n)\n```\n\n## Integração com Comandos de Rede (Network)\n\nOs comandos Fetch trabalham em conjunto com os comandos de rede (Network), mas fornecem controle mais granular:\n\n- **Comandos de Rede (Network)**: Monitoramento e controle de rede mais amplos\n- **Comandos Fetch**: Interceptação e modificação específicas de requisição/resposta\n\n!!! tip \"Considerações de Performance\"\n    A interceptação do Fetch pode impactar a performance de carregamento da página. Use padrões de URL específicos e desabilite quando não for necessário para minimizar a sobrecarga (overhead).","isInternal":false,"tokens":1156,"sizeBytes":4767},{"name":"index.md","path":"docs/pt/api/commands/index.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/pt/api/commands/index.md","title":"Command: /index","category":"command-prompt","format":"markdown","content":"# Visão Geral dos Comandos\n\nO módulo de Comandos (Commands) fornece interfaces de alto nível para interagir com os domínios do Chrome DevTools Protocol (CDP). Cada módulo de comando corresponde a um domínio CDP específico e fornece métodos para executar várias operações do navegador.\n\n## Módulos de Comando Disponíveis\n\n### Comandos do Navegador (Browser)\n- **Módulo**: `browser_commands.py`\n- **Propósito**: Operações em nível de navegador e gerenciamento de janelas\n- **Documentação**: [Comandos do Navegador](browser.md)\n\n### Comandos DOM\n- **Módulo**: `dom_commands.py`\n- **Propósito**: Manipulação da árvore DOM e operações de elementos\n- **Documentação**: [Comandos DOM](dom.md)\n\n### Comandos de Entrada (Input)\n- **Módulo**: `input_commands.py`\n- **Propósito**: Simulação de eventos de entrada (teclado, mouse, toque)\n- **Documentação**: [Comandos de Entrada](input.md)\n\n### Comandos de Rede (Network)\n- **Módulo**: `network_commands.py`\n- **Propósito**: Monitoramento de rede e interceptação de requisições\n- **Documentação**: [Comandos de Rede](network.md)\n\n### Comandos de Página (Page)\n- **Módulo**: `page_commands.py`\n- **Propósito**: Gerenciamento do ciclo de vida da página e navegação\n- **Documentação**: [Comandos de Página](page.md)\n\n### Comandos de Tempo de Execução (Runtime)\n- **Módulo**: `runtime_commands.py`\n- **Propósito**: Execução de JavaScript e gerenciamento de tempo de execução\n- **Documentação**: [Comandos de Tempo de Execução](runtime.md)\n\n### Comandos de Armazenamento (Storage)\n- **Módulo**: `storage_commands.py`\n- **Propósito**: Acesso ao armazenamento do navegador (cookies, local storage, etc.)\n- **Documentação**: [Comandos de Armazenamento](storage.md)\n\n### Comandos de Alvo (Target)\n- **Módulo**: `target_commands.py`\n- **Propósito**: Gerenciamento de alvos (targets) e operações de aba\n- **Documentação**: [Comandos de Alvo](target.md)\n\n### Comandos Fetch\n- **Módulo**: `fetch_commands.py`\n- **Propósito**: Interceptação e modificação de requisições de rede\n- **Documentação**: [Comandos Fetch](fetch.md)\n\n## Padrão de Uso\n\nOs comandos são tipicamente acessados através das instâncias do navegador (browser) ou aba (tab):\n\n```python\nfrom pydoll.browser.chromium import Chrome\n\n# Inicializa o navegador\nbrowser = Chrome()\nawait browser.start()\n\n# Obtém a aba ativa\ntab = await browser.get_active_tab()\n\n# Usa comandos através da aba\nawait tab.navigate(\"https://example.com\")\nelement = await tab.find(id=\"button\")\nawait element.click()\n```\n\n## Estrutura dos Comandos\n\nCada módulo de comando segue um padrão consistente:\n- **Métodos estáticos**: Para execução direta de comandos\n- **Dicas de tipo (Type hints)**: Segurança de tipo (type safety) completa com tipos de protocolo\n- **Tratamento de erros**: Tratamento de exceção adequado para erros CDP\n- **Documentação**: Docstrings abrangentes com exemplos","isInternal":false,"tokens":712,"sizeBytes":2947},{"name":"input.md","path":"docs/pt/api/commands/input.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/pt/api/commands/input.md","title":"Command: /input","category":"command-prompt","format":"markdown","content":"# Comandos de Entrada (Input)\n\nOs comandos de entrada lidam com interações de mouse e teclado, fornecendo simulação de entrada semelhante à humana.\n\n## Visão Geral\n\nO módulo de comandos de entrada fornece funcionalidade para simular a entrada do usuário, incluindo movimentos do mouse, cliques, digitação no teclado e pressionamento de teclas.\n\n::: pydoll.commands.input_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de entrada são usados por métodos de interação de elementos e podem ser usados diretamente para cenários de entrada avançados:\n\n```python\nfrom pydoll.commands.input_commands import dispatch_mouse_event, dispatch_key_event\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Simular clique do mouse\nconnection = ConnectionHandler()\nawait dispatch_mouse_event(\n    connection, \n    type=\"mousePressed\", \n    x=100, \n    y=200, \n    button=\"left\"\n)\n\n# Simular digitação do teclado\nawait dispatch_key_event(\n    connection,\n    type=\"keyDown\",\n    key=\"Enter\"\n)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de entrada fornece funções para:\n\n### Eventos de Mouse\n- `dispatch_mouse_event()` - Cliques, movimentos e eventos de roda do mouse\n- Estados dos botões do mouse (esquerdo, direito, meio)\n- Posicionamento baseado em coordenadas\n- Operações de arrastar e soltar (drag and drop)\n\n### Eventos de Teclado\n- `dispatch_key_event()` - Eventos de pressionar e soltar tecla\n- `insert_text()` - Inserção direta de texto\n- Manipulação de teclas especiais (Enter, Tab, teclas de seta, etc.)\n- Teclas modificadoras (Ctrl, Alt, Shift)\n\n### Eventos de Toque (Touch)\n- Simulação de tela de toque\n- Gestos multitoque (multi-touch)\n- Coordenadas e pressão do toque\n\n## Comportamento Semelhante ao Humano\n\nOs comandos de entrada suportam padrões de comportamento semelhantes ao humano:\n\n- Curvas naturais de movimento do mouse\n- Velocidades e padrões de digitação realistas\n- Micro-atrasos aleatórios entre ações\n- Eventos de toque sensíveis à pressão\n\n!!! tip \"Métodos de Elemento\"\n    Para a maioria dos casos de uso, utilize os métodos de elemento de nível superior, como `element.click()` e `element.type_text()`, que fornecem uma API mais conveniente e lidam com cenários comuns automaticamente.","isInternal":false,"tokens":589,"sizeBytes":2398},{"name":"network.md","path":"docs/pt/api/commands/network.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/pt/api/commands/network.md","title":"Command: /network","category":"command-prompt","format":"markdown","content":"# Comandos de Rede (Network)\n\nOs comandos de rede fornecem controle abrangente sobre requisições de rede, respostas e comportamento de rede do navegador.\n\n## Visão Geral\n\nO módulo de comandos de rede habilita a interceptação de requisições, modificação de respostas, gerenciamento de cookies e capacidades de monitoramento de rede.\n\n::: pydoll.commands.network_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de rede são usados para cenários avançados como interceptação de requisições e monitoramento de rede:\n\n```python\nfrom pydoll.commands.network_commands import enable, set_request_interception\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Habilitar monitoramento de rede\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Habilitar interceptação de requisições\nawait set_request_interception(connection, patterns=[{\"urlPattern\": \"*\"}])\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de rede fornece funções para:\n\n### Gerenciamento de Requisições\n- `enable()` / `disable()` - Habilitar/desabilitar monitoramento de rede\n- `set_request_interception()` - Interceptar e modificar requisições\n- `continue_intercepted_request()` - Continuar ou modificar requisições interceptadas\n- `get_request_post_data()` - Obter dados do corpo (body) da requisição\n\n### Manipulação de Respostas\n- `get_response_body()` - Obter conteúdo da resposta\n- `fulfill_request()` - Fornecer respostas customizadas\n- `fail_request()` - Simular falhas de rede\n\n### Gerenciamento de Cookies\n- `get_cookies()` - Obter cookies do navegador\n- `set_cookies()` - Definir cookies do navegador\n- `delete_cookies()` - Deletar cookies específicos\n- `clear_browser_cookies()` - Limpar todos os cookies\n\n### Controle de Cache\n- `clear_browser_cache()` - Limpar cache do navegador\n- `set_cache_disabled()` - Desabilitar cache do navegador\n- `get_response_body_for_interception()` - Obter respostas em cache\n\n### Segurança & Cabeçalhos\n- `set_user_agent_override()` - Sobrescrever user agent\n- `set_extra_http_headers()` - Adicionar cabeçalhos customizados\n- `emulate_network_conditions()` - Simular condições de rede\n\n## Casos de Uso Avançados\n\n### Interceptação de Requisição\n```python\n# Interceptar e modificar requisições\nawait set_request_interception(connection, patterns=[\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"}\n])\n\n# Lidar com requisição interceptada\nasync def handle_request(request):\n    if \"api/login\" in request.url:\n        # Modificar cabeçalhos da requisição\n        headers = request.headers.copy()\n        headers[\"Authorization\"] = \"Bearer token\"\n        await continue_intercepted_request(\n            connection, \n            request_id=request.request_id,\n            headers=headers\n        )\n```\n\n### Simulação de Resposta (Mocking)\n```python\n# Simular (mockar) respostas de API\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers={\"Content-Type\": \"application/json\"},\n    body='{\"status\": \"success\"}'\n)\n```\n\n!!! warning \"Impacto na Performance\"\n    A interceptação de rede pode impactar a performance de carregamento da página. Use seletivamente e desabilite quando não for necessário.","isInternal":false,"tokens":829,"sizeBytes":3373},{"name":"page.md","path":"docs/pt/api/commands/page.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/pt/api/commands/page.md","title":"Command: /page","category":"command-prompt","format":"markdown","content":"# Comandos de Página (Page)\n\nOs comandos de página lidam com a navegação da página, eventos do ciclo de vida e operações em nível de página.\n\n## Visão Geral\n\nO módulo de comandos de página fornece funcionalidade para navegar entre páginas, gerenciar o ciclo de vida da página, lidar com a execução de JavaScript e controlar o comportamento da página.\n\n::: pydoll.commands.page_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de página são usados extensivamente pela classe `Tab` para navegação e gerenciamento da página:\n\n```python\nfrom pydoll.commands.page_commands import navigate, reload, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Navegar para uma URL\nconnection = ConnectionHandler()\nawait enable(connection)  # Habilitar eventos da página\nawait navigate(connection, url=\"https://example.com\")\n\n# Recarregar a página\nawait reload(connection)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de página fornece funções para:\n\n### Navegação\n- `Maps()` - Navegar para URLs\n- `reload()` - Recarregar página atual\n- `go_back()` - Navegar para trás no histórico\n- `go_forward()` - Navegar para frente no histórico\n- `stop_loading()` - Parar carregamento da página\n\n### Ciclo de Vida da Página\n- `enable()` / `disable()` - Habilitar/desabilitar eventos da página\n- `get_frame_tree()` - Obter estrutura de frames da página\n- `get_navigation_history()` - Obter histórico de navegação\n\n### Gerenciamento de Conteúdo\n- `get_resource_content()` - Obter conteúdo de recurso da página\n- `search_in_resource()` - Pesquisar dentro de recursos da página\n- `set_document_content()` - Definir conteúdo HTML da página\n\n### Capturas de Tela & PDF\n- `capture_screenshot()` - Tirar capturas de tela da página\n- `print_to_pdf()` - Gerar PDF a partir da página\n- `capture_snapshot()` - Capturar snapshots da página\n\n### Execução de JavaScript\n- `add_script_to_evaluate_on_new_document()` - Adicionar scripts para avaliar em novo documento (scripts de inicialização)\n- `remove_script_to_evaluate_on_new_document()` - Remover scripts de inicialização\n\n### Configurações da Página\n- `set_lifecycle_events_enabled()` - Controlar eventos do ciclo de vida\n- `set_ad_blocking_enabled()` - Habilitar/desabilitar bloqueio de anúncios\n- `set_bypass_csp()` - Contornar (Bypass) Política de Segurança de Conteúdo (CSP)\n\n## Recursos Avançados\n\n### Gerenciamento de Frames\n```python\n# Obter todos os frames na página\nframe_tree = await get_frame_tree(connection)\nfor frame in frame_tree.child_frames:\n    print(f\"Frame: {frame.frame.url}\")\n```\n\n### Interceptação de Recursos\n```python\n# Obter conteúdo do recurso\ncontent = await get_resource_content(\n    connection, \n    frame_id=frame_id, \n    url=\"https://example.com/script.js\"\n)\n```\n\n### Eventos da Página\nOs comandos de página funcionam com vários eventos de página:\n- `Page.loadEventFired` - Carregamento da página concluído\n- `Page.domContentEventFired` - Conteúdo DOM carregado\n- `Page.frameNavigated` - Navegação do frame\n- `Page.frameStartedLoading` - Carregamento do frame iniciado\n\n!!! tip \"Integração com a Classe Tab\"\n    A maioria das operações de página está disponível através dos métodos da classe `Tab`, como `tab.go_to()`, `tab.reload()` e `tab.screenshot()`, que fornecem uma API mais conveniente.","isInternal":false,"tokens":850,"sizeBytes":3483},{"name":"runtime.md","path":"docs/pt/api/commands/runtime.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/pt/api/commands/runtime.md","title":"Command: /runtime","category":"command-prompt","format":"markdown","content":"# Comandos de Tempo de Execução (Runtime)\n\nOs comandos de tempo de execução fornecem capacidades de execução de JavaScript e gerenciamento do ambiente de tempo de execução.\n\n## Visão Geral\n\nO módulo de comandos de tempo de execução habilita a execução de código JavaScript, inspeção de objetos e controle do ambiente de tempo de execução dentro dos contextos do navegador.\n\n::: pydoll.commands.runtime_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de tempo de execução são usados para execução de JavaScript e gerenciamento do tempo de execução:\n\n```python\nfrom pydoll.commands.runtime_commands import evaluate, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Habilitar eventos de tempo de execução\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Executar JavaScript\nresult = await evaluate(\n    connection, \n    expression=\"document.title\",\n    return_by_value=True\n)\nprint(result.value)  # Título da página\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de tempo de execução fornece funções para:\n\n### Execução de JavaScript\n- `evaluate()` - Executar expressões JavaScript\n- `call_function_on()` - Chamar funções em objetos\n- `compile_script()` - Compilar JavaScript para reutilização\n- `run_script()` - Executar scripts compilados\n\n### Gerenciamento de Objetos\n- `get_properties()` - Obter propriedades do objeto\n- `release_object()` - Liberar referências de objeto\n- `release_object_group()` - Liberar grupos de objetos\n\n### Controle de Tempo de Execução\n- `enable()` / `disable()` - Habilitar/desabilitar eventos de tempo de execução\n- `discard_console_entries()` - Limpar entradas do console\n- `set_custom_object_formatter_enabled()` - Habilitar formatadores customizados\n\n### Manipulação de Exceções\n- `set_async_call_stack_depth()` - Definir profundidade da pilha de chamadas assíncronas\n- Captura e relatório de exceções\n- Inspeção de objeto de erro\n\n## Uso Avançado\n\n### Execução de JavaScript Complexo\n```python\n# Executar JavaScript complexo com tratamento de erros\nscript = \"\"\"\ntry {\n    const elements = document.querySelectorAll('.item');\n    return Array.from(elements).map(el => ({\n        text: el.textContent,\n        href: el.href\n    }));\n} catch (error) {\n    return { error: error.message };\n}\n\"\"\"\n\nresult = await evaluate(\n    connection,\n    expression=script,\n    return_by_value=True,\n    await_promise=True\n)\n```\n\n### Inspeção de Objeto\n```python\n# Obter propriedades detalhadas do objeto\nproperties = await get_properties(\n    connection,\n    object_id=object_id,\n    own_properties=True,\n    accessor_properties_only=False\n)\n\nfor prop in properties:\n    print(f\"{prop.name}: {prop.value}\")\n```\n\n### Integração com Console\nOs comandos de tempo de execução se integram ao console do navegador:\n- Mensagens e erros do console\n- Chamadas de método da API Console\n- Formatadores de console customizados\n\n!!! note \"Considerações de Performance\"\n    A execução de JavaScript através dos comandos de tempo de execução pode ser mais lenta do que a execução nativa do navegador. Use com moderação para operações complexas.","isInternal":false,"tokens":805,"sizeBytes":3297},{"name":"storage.md","path":"docs/pt/api/commands/storage.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/pt/api/commands/storage.md","title":"Command: /storage","category":"command-prompt","format":"markdown","content":"# Comandos de Armazenamento (Storage)\n\nOs comandos de armazenamento fornecem gerenciamento abrangente do armazenamento do navegador, incluindo cookies, localStorage, sessionStorage e IndexedDB.\n\n## Visão Geral\n\nO módulo de comandos de armazenamento permite o gerenciamento de todos os mecanismos de armazenamento do navegador, fornecendo funcionalidade para persistência e recuperação de dados.\n\n::: pydoll.commands.storage_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de armazenamento são usados para gerenciar o armazenamento do navegador em diferentes mecanismos:\n\n```python\nfrom pydoll.commands.storage_commands import get_cookies, set_cookies, clear_data_for_origin\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Obter cookies para um domínio\nconnection = ConnectionHandler()\ncookies = await get_cookies(connection, urls=[\"https://example.com\"])\n\n# Definir um novo cookie\nawait set_cookies(connection, cookies=[{\n    \"name\": \"session_id\",\n    \"value\": \"abc123\",\n    \"domain\": \"example.com\",\n    \"path\": \"/\",\n    \"httpOnly\": True,\n    \"secure\": True\n}])\n\n# Limpar todo o armazenamento para uma origem\nawait clear_data_for_origin(\n    connection,\n    origin=\"https://example.com\",\n    storage_types=\"all\"\n)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de armazenamento fornece funções para:\n\n### Gerenciamento de Cookies\n- `get_cookies()` - Obter cookies por URL ou domínio\n- `set_cookies()` - Definir novos cookies\n- `delete_cookies()` - Deletar cookies específicos\n- `clear_cookies()` - Limpar todos os cookies\n\n### Local Storage\n- `get_dom_storage_items()` - Obter itens do localStorage\n- `set_dom_storage_item()` - Definir item do localStorage\n- `remove_dom_storage_item()` - Remover item do localStorage\n- `clear_dom_storage()` - Limpar localStorage\n\n### Session Storage\n- Operações de session storage (semelhantes ao localStorage)\n- Gerenciamento de dados específicos da sessão\n- Armazenamento isolado por aba\n\n### IndexedDB\n- `get_database_names()` - Obter bancos de dados IndexedDB\n- `request_database()` - Acessar a estrutura do banco de dados\n- `request_data()` - Consultar dados do banco de dados\n- `clear_object_store()` - Limpar object stores\n\n### Cache Storage\n- `request_cache_names()` - Obter nomes de cache\n- `request_cached_response()` - Obter respostas em cache\n- `delete_cache()` - Deletar entradas de cache\n\n### Application Cache (Obsoleto)\n- Suporte a cache de aplicação legado\n- Cache baseado em manifesto\n\n## Recursos Avançados\n\n### Operações em Massa\n```python\n# Limpar todos os tipos de armazenamento para múltiplas origens\norigins = [\"https://example.com\", \"https://api.example.com\"]\nfor origin in origins:\n    await clear_data_for_origin(\n        connection,\n        origin=origin,\n        storage_types=\"cookies,local_storage,session_storage,indexeddb\"\n    )\n```\n\n### Cotas de Armazenamento\n```python\n# Obter informações de uso e cota de armazenamento\nquota_info = await get_usage_and_quota(connection, origin=\"https://example.com\")\nprint(f\"Usado: {quota_info.usage} bytes\")\nprint(f\"Cota: {quota_info.quota} bytes\")\n```\n\n### Armazenamento Cross-Origin\n```python\n# Gerenciar armazenamento entre diferentes origens\nawait set_cookies(connection, cookies=[{\n    \"name\": \"cross_site_token\",\n    \"value\": \"token123\",\n    \"domain\": \".example.com\",  # Aplica-se a todos os subdomínios\n    \"sameSite\": \"None\",\n    \"secure\": True\n}])\n```\n\n## Tipos de Armazenamento\n\nO módulo suporta vários mecanismos de armazenamento:\n\n| Tipo de Armazenamento | Persistência | Escopo | Capacidade |\n|--------------|-------------|-------|----------|\n| Cookies | Persistente | Domínio/Caminho | ~4KB por cookie |\n| localStorage | Persistente | Origem | ~5-10MB |\n| sessionStorage | Sessão | Aba | ~5-10MB |\n| IndexedDB | Persistente | Origem | Grande (GB+) |\n| Cache API | Persistente | Origem | Grande |\n\n!!! warning \"Considerações de Privacidade\"\n    Operações de armazenamento podem afetar a privacidade do usuário. Sempre lide com dados de armazenamento de forma responsável e em conformidade com as regulamentações de privacidade.","isInternal":false,"tokens":1050,"sizeBytes":4236},{"name":"target.md","path":"docs/pt/api/commands/target.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/pt/api/commands/target.md","title":"Command: /target","category":"command-prompt","format":"markdown","content":"# Comandos de Alvo (Target)\n\nOs comandos de alvo (Target) gerenciam os alvos do navegador, incluindo abas, janelas e outros contextos de navegação.\n\n## Visão Geral\n\nO módulo de comandos de alvo fornece funcionalidade para criar, gerenciar e controlar os alvos do navegador, como abas, janelas pop-up e service workers.\n\n::: pydoll.commands.target_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de alvo são usados internamente pelas classes do navegador para gerenciar abas e janelas:\n\n```python\nfrom pydoll.commands.target_commands import get_targets, create_target, close_target\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Obter todos os alvos do navegador\nconnection = ConnectionHandler()\ntargets = await get_targets(connection)\n\n# Criar uma nova aba\nnew_target = await create_target(connection, url=\"https://example.com\")\n\n# Fechar um alvo\nawait close_target(connection, target_id=new_target.target_id)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de alvo fornece funções para:\n\n### Gerenciamento de Alvo\n- `get_targets()` - Listar todos os alvos do navegador\n- `create_target()` - Criar novas abas ou janelas\n- `close_target()` - Fechar alvos específicos\n- `activate_target()` - Trazer alvo para o primeiro plano\n\n### Informações do Alvo\n- `get_target_info()` - Obter informações detalhadas do alvo\n- Tipos de alvo: page, background_page, service_worker, browser\n- Estados do alvo: attached, detached, crashed\n\n### Gerenciamento de Sessão\n- `attach_to_target()` - Anexar a um alvo para controle\n- `detach_from_target()` - Desanexar de um alvo\n- `send_message_to_target()` - Enviar comandos para alvos\n\n### Contexto do Navegador\n- `create_browser_context()` - Criar contexto de navegador isolado\n- `dispose_browser_context()` - Remover contexto de navegador\n- `get_browser_contexts()` - Listar contextos de navegador\n\n## Tipos de Alvos\n\nDiferentes tipos de alvos podem ser gerenciados:\n\n### Alvos de Página\n```python\n# Criar uma nova aba\npage_target = await create_target(\n    connection,\n    url=\"https://example.com\",\n    width=1920,\n    height=1080,\n    browser_context_id=None  # Contexto padrão\n)\n```\n\n### Janelas Pop-up\n```python\n# Criar uma janela pop-up\npopup_target = await create_target(\n    connection,\n    url=\"https://popup.example.com\",\n    width=800,\n    height=600,\n    new_window=True\n)\n```\n\n### Contextos Anônimos (Incognito)\n```python\n# Criar contexto de navegador anônimo\nincognito_context = await create_browser_context(connection)\n\n# Criar aba no contexto anônimo\nincognito_tab = await create_target(\n    connection,\n    url=\"https://private.example.com\",\n    browser_context_id=incognito_context.browser_context_id\n)\n```\n\n!!! info \"Headless vs Headed: como os contextos se manifestam\"\n    Contextos de navegador são ambientes lógicos isolados. No modo **headed** (com interface gráfica), a primeira página criada dentro de um novo contexto geralmente abrirá em uma nova janela do SO. No modo **headless** (sem interface gráfica), nenhuma janela é mostrada — o isolamento permanece puramente lógico (cookies, armazenamento, cache e estado de autenticação ainda são separados por contexto). Prefira contextos em pipelines headless/CI para performance e isolamento limpo.\n\n## Recursos Avançados\n\n### Eventos de Alvo\nOs comandos de alvo funcionam com vários eventos de alvo:\n- `Target.targetCreated` - Novo alvo criado\n- `Target.targetDestroyed` - Alvo fechado\n- `Target.targetInfoChanged` - Informações do alvo atualizadas\n- `Target.targetCrashed` - Alvo falhou (crashed)\n\n### Coordenação Multi-Alvo\n```python\n# Gerenciar múltiplas abas\ntargets = await get_targets(connection)\npage_targets = [t for t in targets if t.type == \"page\"]\n\nfor target in page_targets:\n    # Realizar operações em cada aba\n    await activate_target(connection, target_id=target.target_id)\n    # ... fazer o trabalho nesta aba\n```\n\n### Isolamento de Alvo\n```python\n# Criar contexto de navegador isolado para testes\ntest_context = await create_browser_context(connection)\n\n# Todos os alvos neste contexto estão isolados\ntest_tab1 = await create_target(\n    connection, \n    url=\"https://test1.com\",\n    browser_context_id=test_context.browser_context_id\n)\n\ntest_tab2 = await create_target(\n    connection,\n    url=\"https://test2.com\", \n    browser_context_id=test_context.browser_context_id\n)\n```\n\n!!! note \"Integração com o Navegador\"\n    Os comandos de alvo são usados principalmente internamente pelas classes de navegador `Chrome` e `Edge`. As APIs de navegador de alto nível fornecem métodos mais convenientes para o gerenciamento de abas.","isInternal":false,"tokens":1176,"sizeBytes":4748},{"name":"browser.md","path":"docs/zh/api/commands/browser.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/zh/api/commands/browser.md","title":"Command: /browser","category":"command-prompt","format":"markdown","content":"# 浏览器命令\n\n浏览器命令提供对浏览器实例及其配置的底层控制。\n\n## 概述\n\n浏览器命令模块处理浏览器级别的操作，例如版本信息、目标管理和浏览器范围的设置。\n\n::: pydoll.commands.browser_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n浏览器命令通常由浏览器类在内部使用，用于管理浏览器实例：\n\n```python\nfrom pydoll.commands.browser_commands import get_version\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get browser version information\nconnection = ConnectionHandler()\nversion_info = await get_version(connection)\n```\n\n## 可用命令\n\n浏览器命令模块提供以下功能：\n\n- 获取浏览器版本和用户代理信息\n- 管理浏览器目标（标签页、窗口）\n- 控制浏览器范围的设置和权限\n- 处理浏览器生命周期事件\n\n!!! note \"Internal Usage\"\n    These commands are primarily used internally by the `Chrome` and `Edge` browser classes. Direct usage is recommended only for advanced scenarios. ","isInternal":false,"tokens":204,"sizeBytes":1155},{"name":"dom.md","path":"docs/zh/api/commands/dom.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/zh/api/commands/dom.md","title":"Command: /dom","category":"command-prompt","format":"markdown","content":"# DOM命令\n\nDOM 命令模块提供了与网页文档对象模型交互的全面功能。\n\n## 概述\n\nDOM 命令模块是 Pydoll 中最重要的模块之一，它提供了查找、交互和操作网页上的 HTML 元素所需的所有功能。\n\n::: pydoll.commands.dom_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nDOM commands are used extensively by the `WebElement` class and element finding methods:\n\n## 用法\n\n`WebElement` 类和元素查找方法广泛使用DOM 命令：\n\n```python\nfrom pydoll.commands.dom_commands import query_selector, get_attributes\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Find element and get its attributes\nconnection = ConnectionHandler()\nnode_id = await query_selector(connection, selector=\"#username\")\nattributes = await get_attributes(connection, node_id=node_id)\n```\n\n## 主要功能\n\nDOM 命令模块提供以下功能：\n\n### 元素定位\n- `query_selector()` - 通过CSS选择器进行元素定位\n- `query_selector_all()` - 通过CSS选择器进行元素定位（查找多个元素）\n- `get_document()` - 获取document的根节点\n\n### 元素交互\n- `click_element()` - 点击元素\n- `focus_element()` - 焦点置于元素\n- `set_attribute_value()` - 设置元素属性\n- `get_attributes()` - 获取元素属性\n\n### 元素信息\n- `get_box_model()` - 获取元素位置和尺寸\n- `describe_node()` - 获取元素详细信息\n- `get_outer_html()` - 获取元素的HTML内容\n\n### DOM 操作\n- `remove_node()` - 从DOM节点中删除元素\n- `set_node_value()` - 设置元素值\n- `request_child_nodes()` - 获取子元素\n\n!!! tip \"High-Level APIs\"\n    While these commands provide powerful low-level access, most users should use the higher-level `WebElement` class methods like `click()`, `type_text()`, and `get_attribute()` which use these commands internally. ","isInternal":false,"tokens":381,"sizeBytes":1953},{"name":"fetch.md","path":"docs/zh/api/commands/fetch.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/zh/api/commands/fetch.md","title":"Command: /fetch","category":"command-prompt","format":"markdown","content":"# Fetch 命令\n\nFetch 命令使用 Fetch API 域提供高级网络请求处理和拦截功能。\n\n## 概述\n\nFetch 命令模块支持复杂的网络请求管理，包括请求修改、响应拦截和身份验证处理。\n\n::: pydoll.commands.fetch_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\nFetch 命令用于高级网络拦截和请求处理：\n\n```python\nfrom pydoll.commands.fetch_commands import enable, request_paused, continue_request\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable fetch domain\nconnection = ConnectionHandler()\nawait enable(connection, patterns=[{\n    \"urlPattern\": \"*\",\n    \"requestStage\": \"Request\"\n}])\n\n# Handle paused requests\nasync def handle_paused_request(request_id, request):\n    # Modify request or continue as-is\n    await continue_request(connection, request_id=request_id)\n```\n\n## 关键功能\n\nfetch 命令模块提供以下功能：\n\n### 请求拦截\n- `enable()` - 激活fetch模式\n- `disable()` - 关闭fetch模式\n- `continue_request()` - 继续请求（放行）\n- `fail_request()` - 返回特定错误请求\n\n### 修改请求\n- 修改请求headers\n- 更改请求 URL\n- 更改请求方法（GET、POST 等）\n- 修改请求body\n\n### 响应处理\n- `fulfill_request()` - 提供自定义响应\n- `get_response_body()` - 获取响应内容\n- 修改响应头\n- 响应状态码控制\n\n### 身份验证\n- `continue_with_auth()` - 处理身份验证挑战\n- 基本身份验证支持\n- 自定义身份验证流程\n\n## 高级功能\n\n### 基于模式的拦截\n\n```python\n# Intercept specific URL patterns\npatterns = [\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"},\n    {\"urlPattern\": \"*.js\", \"requestStage\": \"Response\"},\n    {\"urlPattern\": \"https://example.com/*\", \"requestStage\": \"Request\"}\n]\n\nawait enable(connection, patterns=patterns)\n```\n\n### 请求修改\n```python\n# Modify intercepted requests\nasync def modify_request(request_id, request):\n    # Add authentication header\n    headers = request.headers.copy()\n    headers[\"Authorization\"] = \"Bearer token123\"\n    \n    # Continue with modified headers\n    await continue_request(\n        connection,\n        request_id=request_id,\n        headers=headers\n    )\n```\n\n### 响应模拟\n```python\n# Mock API responses\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers=[\n        {\"name\": \"Content-Type\", \"value\": \"application/json\"},\n        {\"name\": \"Access-Control-Allow-Origin\", \"value\": \"*\"}\n    ],\n    body='{\"status\": \"success\", \"data\": {\"mocked\": true}}'\n)\n```\n\n### 身份验证处理\n```python\n# Handle authentication challenges\nawait continue_with_auth(\n    connection,\n    request_id=request_id,\n    auth_challenge_response={\n        \"response\": \"ProvideCredentials\",\n        \"username\": \"user\",\n        \"password\": \"pass\"\n    }\n)\n```\n\n## 请求阶段\n\nFetch 命令可以在不同阶段拦截请求：\n\n| 阶段 | 描述 | 用例 |\n|-------|-------------|-----------|\n| 请求 | 请求发送前 | 修改标头、URL 和方法 |\n| 响应 | 收到响应后 | 模拟响应，修改内容 |\n\n## 错误处理\n\n```python\n# Fail requests with specific errors\nawait fail_request(\n    connection,\n    request_id=request_id,\n    error_reason=\"ConnectionRefused\"  # or \"AccessDenied\", \"TimedOut\", etc.\n)\n```\n\n## 与网络命令集成\n\nFetch 命令与网络命令协同工作，但提供更精细的控制：\n\n- **网络命令**：更广泛的网络监控和控制\n- **Fetch 命令**：特定的请求/响应拦截和修改\n\n!!! tip \"Performance Considerations\"\n    Fetch interception can impact page loading performance. Use specific URL patterns and disable when not needed to minimize overhead. ","isInternal":false,"tokens":775,"sizeBytes":3798},{"name":"index.md","path":"docs/zh/api/commands/index.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/zh/api/commands/index.md","title":"Command: /index","category":"command-prompt","format":"markdown","content":"# 命令概述\n\n命令模块提供了与Chrome DevTools协议(CDP)域交互的高级接口。每个命令模块对应一个特定的CDP域，并提供执行各种浏览器操作的方法。\n\n## 可用命令模块\n\n### 浏览器命令\n- **模块**: `browser_commands.py`\n- **用途**: 浏览器级别操作和窗口管理\n- **文档**: [浏览器命令](browser.md)\n\n### DOM命令\n- **模块**: `dom_commands.py`\n- **用途**: DOM树操作和元素操作\n- **文档**: [DOM命令](dom.md)\n\n### 输入命令\n- **模块**: `input_commands.py`\n- **用途**: 输入事件模拟(键盘、鼠标、触摸)\n- **文档**: [输入命令](input.md)\n\n### 网络命令\n- **模块**: `network_commands.py`\n- **用途**: 网络监控和请求拦截\n- **文档**: [网络命令](network.md)\n\n### 页面命令\n- **模块**: `page_commands.py`\n- **用途**: 页面生命周期管理和导航\n- **文档**: [页面命令](page.md)\n\n### 运行时命令\n- **模块**: `runtime_commands.py`\n- **用途**: JavaScript执行和运行时管理\n- **文档**: [运行时命令](runtime.md)\n\n### 存储命令\n- **模块**: `storage_commands.py`\n- **用途**: 浏览器存储访问(cookies、本地存储等)\n- **文档**: [存储命令](storage.md)\n\n### 目标命令\n- **模块**: `target_commands.py`\n- **用途**: 目标管理和标签页操作\n- **文档**: [目标命令](target.md)\n\n### 获取命令\n- **模块**: `fetch_commands.py`\n- **用途**: 网络请求拦截和修改\n- **文档**: [获取命令](fetch.md)\n\n## 使用模式\n\n命令通常通过浏览器或标签页实例访问：\n\n```python\nfrom pydoll.browser.chromium import Chrome\n\n# 初始化浏览器\nbrowser = Chrome()\nawait browser.start()\n\n# 获取活动标签页\ntab = await browser.get_active_tab()\n\n# 通过标签页使用命令\nawait tab.navigate(\"https://example.com\")\nelement = await tab.find(id=\"button\")\nawait element.click()\n```\n\n## 命令结构\n\n每个命令模块遵循一致的模式：\n- **静态方法**: 用于直接命令执行\n- **类型提示**: 使用协议类型的完整类型安全\n- **错误处理**: 对CDP错误的正确异常处理\n- **文档**: 包含示例的全面文档字符串 ","isInternal":false,"tokens":339,"sizeBytes":2151},{"name":"input.md","path":"docs/zh/api/commands/input.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/zh/api/commands/input.md","title":"Command: /input","category":"command-prompt","format":"markdown","content":"# 输入命令\n\n输入命令处理鼠标和键盘交互，提供真人仿真的输入模拟。\n\n## 概述\n\n输入命令模块提供模拟用户输入的功能，包括鼠标移动、点击、键盘输入和按键操作。\n\n::: pydoll.commands.input_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n输入命令由元素交互方法使用，可直接用于高级输入场景：\n\n```python\nfrom pydoll.commands.input_commands import dispatch_mouse_event, dispatch_key_event\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Simulate mouse click\nconnection = ConnectionHandler()\nawait dispatch_mouse_event(\n    connection, \n    type=\"mousePressed\", \n    x=100, \n    y=200, \n    button=\"left\"\n)\n\n# Simulate keyboard typing\nawait dispatch_key_event(\n    connection,\n    type=\"keyDown\",\n    key=\"Enter\"\n)\n```\n\n## 主要功能\n\n输入命令模块提供以下函数：\n\n### 鼠标事件\n- `dispatch_mouse_event()` - 鼠标点击、移动和滚轮事件\n- 鼠标按键状态（左键、右键、中键）\n- 基于坐标的定位\n- 拖放操作\n\n\n### 键盘事件\n- `dispatch_key_event()` - 键盘按下和释放事件\n- `insert_text()` - 直接插入文本\n- 特殊键处理（Enter、Tab、箭头键等）\n- 修饰键（Ctrl、Alt、Shift）\n\n\n### 触摸事件\n- 触摸屏模拟\n- 多点触控手势\n- 触摸坐标和压力控制\n\n## 仿真行为\n\n输入命令支持仿真行为模式：\n\n- 平滑的鼠标移动曲线\n- 真实的打字速度和模式\n- 操作之间随机的微延迟\n- 压力感应触摸事件\n\n!!! tip \"Element Methods\"\n    For most use cases, use the higher-level element methods like `element.click()` and `element.type_text()` which provide a more convenient API and handle common scenarios automatically. ","isInternal":false,"tokens":326,"sizeBytes":1851},{"name":"network.md","path":"docs/zh/api/commands/network.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/zh/api/commands/network.md","title":"Command: /network","category":"command-prompt","format":"markdown","content":"# 网络命令\n\n网络命令提供对网络请求、响应和浏览器网络行为的全面控制。\n\n## 概述\n\n网络命令模块支持请求拦截、响应修改、Cookie 管理和网络监控功能。\n\n::: pydoll.commands.network_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n网络命令用于请求拦截和网络监控等高级场景：\n\n```python\nfrom pydoll.commands.network_commands import enable, set_request_interception\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable network monitoring\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Enable request interception\nawait set_request_interception(connection, patterns=[{\"urlPattern\": \"*\"}])\n```\n\n## 主要功能\n\n网络命令模块提供以下功能：\n\n\n### 请求管理\n- `enable()` / `disable()` - 启用/禁用网络监控\n- `set_request_interception()` - 拦截并修改请求\n- `continue_intercepted_request()` - 继续或修改拦截的请求\n- `get_request_post_data()` - 获取请求体数据\n\n\n### 响应处理\n- `get_response_body()` - 获取响应内容\n- `fulfill_request()` - 提供自定义响应\n- `fail_request()` - 模拟网络异常\n\n### Cookie 管理\n- `get_cookies()` - 获取浏览器 Cookie\n- `set_cookies()` - 设置浏览器 Cookie\n- `delete_cookies()` - 删除指定 Cookie\n- `clear_browser_cookies()` - 清除所有 Cookie\n\n### 缓存控制\n- `clear_browser_cache()` - 清除浏览器缓存\n- `set_cache_disabled()` - 禁用浏览器缓存\n- `get_response_body_for_interception()` - 获取缓存的响应\n\n### 安全和标头\n- `set_user_agent_override()` - 覆盖用户代理\n- `set_extra_http_headers()` - 添加自定义标头\n- `emulate_network_conditions()` - 模拟网络连接状况\n\n## 高级用例\n\n### 请求拦截\n\n```python\n# 拦截修改请求\nawait set_request_interception(connection, patterns=[\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"}\n])\n\n# 拦截请求处理\nasync def handle_request(request):\n    if \"api/login\" in request.url:\n        # 修改请求头\n        headers = request.headers.copy()\n        headers[\"Authorization\"] = \"Bearer token\"\n        await continue_intercepted_request(\n            connection, \n            request_id=request.request_id,\n            headers=headers\n        )\n```\n\n### 响应模拟\n```python\n# 模拟 API 响应\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers={\"Content-Type\": \"application/json\"},\n    body='{\"status\": \"success\"}'\n)\n```\n\n!!! warning \"Performance Impact\"\n    Network interception can impact page loading performance. Use selectively and disable when not needed. ","isInternal":false,"tokens":556,"sizeBytes":2753},{"name":"page.md","path":"docs/zh/api/commands/page.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/zh/api/commands/page.md","title":"Command: /page","category":"command-prompt","format":"markdown","content":"# 页面命令\n\n页面命令处理页面导航、生命周期事件和页面操作。\n\n## 概述\n\n页面命令模块提供页面间导航、管理页面生命周期、处理 JavaScript 执行以及控制页面行为的功能。\n\n::: pydoll.commands.page_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n“Tab”类广泛使用页面命令进行导航和页面管理：\n\n```python\nfrom pydoll.commands.page_commands import navigate, reload, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Navigate to a URL\nconnection = ConnectionHandler()\nawait enable(connection)  # Enable page events\nawait navigate(connection, url=\"https://example.com\")\n\n# Reload the page\nawait reload(connection)\n```\n\n## 关键功能\n\n页面命令模块提供以下函数：\n\n### 导航\n- `navigate()` - 访问URL\n- `reload()` - 重新加载当前页面\n- `go_back()` - 后退一步\n- `go_forward()` - 前进一步\n- `stop_loading()` - 停止页面加载\n\n### 页面生命周期\n- `enable()` / `disable()` - 启用/禁用页面事件\n- `get_frame_tree()` - 获取页面框架结构\n- `get_navigation_history()` - 获取导航历史记录\n\n### 内容管理\n- `get_resource_content()` - 获取页面资源内容\n- `search_in_resource()` - 在页面资源内搜索\n- `set_document_content()` - 设置页面 HTML 内容\n\n### 截图和 PDF\n- `capture_screenshot()` - 页面截图\n- `print_to_pdf()` - 将页面保存为PDF\n- `capture_snapshot()` - 页面快照\n\n### JavaScript 执行\n- `add_script_to_evaluate_on_new_document()` - 添加启动脚本(在网页加载前注入js)\n- `remove_script_to_evaluate_on_new_document()` - 移除启动脚本\n\n### 页面设置\n- `set_lifecycle_events_enabled()` - 控制生命周期事件\n- `set_ad_blocking_enabled()` - 启用/禁用广告拦截\n- `set_bypass_csp()` - 绕过内容安全策略\n\n## 高级功能\n### 框架管理\n\n```python\n# Get all frames in the page\nframe_tree = await get_frame_tree(connection)\nfor frame in frame_tree.child_frames:\n    print(f\"Frame: {frame.frame.url}\")\n```\n\n### 资源拦截\n```python\n# Get resource content\ncontent = await get_resource_content(\n    connection, \n    frame_id=frame_id, \n    url=\"https://example.com/script.js\"\n)\n```\n\n### 页面事件\n页面命令可与各种页面事件配合使用：\n- `Page.loadEventFired` - 页面加载完成\n- `Page.domContentEventFired` - DOM 内容已加载\n- `Page.frameNavigated` - 框架访问结束\n- `Page.frameStartedLoading` - 框架加载开始\n\n\n!!! 小提示“Tab 类集成”\n大多数页面操作都可以通过 `Tab` 类方法实现，例如 `tab.go_to()`、`tab.reload()` 和 `tab.screenshot()`，这些方法提供了更便捷的 API。","isInternal":false,"tokens":517,"sizeBytes":2778},{"name":"runtime.md","path":"docs/zh/api/commands/runtime.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/zh/api/commands/runtime.md","title":"Command: /runtime","category":"command-prompt","format":"markdown","content":"# 运行时命令\n\n运行时命令提供 JavaScript 执行功能和运行时环境管理。\n\n## 概述\n\n运行时命令模块支持在浏览器上下文中执行 JavaScript 代码、检查对象以及控制运行时环境。\n\n::: pydoll.commands.runtime_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n运行时命令用于 JavaScript 执行和运行时管理：\n\n```python\nfrom pydoll.commands.runtime_commands import evaluate, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable runtime events\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Execute JavaScript\nresult = await evaluate(\n    connection, \n    expression=\"document.title\",\n    return_by_value=True\n)\nprint(result.value)  # Page title\n```\n\n## 主要功能\n\n运行时命令模块提供以下功能：\n\n### JavaScript 执行\n- `evaluate()` - 执行 JavaScript 表达式\n- `call_function_on()` - 调用对象上的函数\n- `compile_script()` - 编译 JavaScript 以供复用\n- `run_script()` - 运行已编译的脚本\n\n### 对象管理\n- `get_properties()` - 获取对象属性\n- `release_object()` - 释放对象引用\n- `release_object_group()` - 释放对象组\n\n### 运行时控制\n- `enable()` / `disable()` - 启用/禁用运行时事件\n- `discard_console_entries()` - 清除控制台记录\n- `set_custom_object_formatter_enabled()` - 启用自定义格式化程序\n\n### 异常处理\n- `set_async_call_stack_depth()` - 设置调用堆栈深度\n- 异常捕获和报告\n- 错误对象检查\n\n## 高级用法\n\n### 复杂的 JavaScript 执行\n\n```python\n# 执行带有错误处理的复杂 JavaScript\nscript = \"\"\"\ntry {\n    const elements = document.querySelectorAll('.item');\n    return Array.from(elements).map(el => ({\n        text: el.textContent,\n        href: el.href\n    }));\n} catch (error) {\n    return { error: error.message };\n}\n\"\"\"\n\nresult = await evaluate(\n    connection,\n    expression=script,\n    return_by_value=True,\n    await_promise=True\n)\n```\n\n### 对象检查\n```python\n# Get detailed object properties\nproperties = await get_properties(\n    connection,\n    object_id=object_id,\n    own_properties=True,\n    accessor_properties_only=False\n)\n\nfor prop in properties:\n    print(f\"{prop.name}: {prop.value}\")\n```\n\n### 控制台集成\n运行时命令与浏览器控制台集成：\n- 控制台消息和错误\n- 控制台 API 方法调用\n- 自定义控制台格式化程序\n\n!!! note \"Performance Considerations\"\n    JavaScript execution through runtime commands can be slower than native browser execution. Use judiciously for complex operations. ","isInternal":false,"tokens":535,"sizeBytes":2687},{"name":"storage.md","path":"docs/zh/api/commands/storage.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/zh/api/commands/storage.md","title":"Command: /storage","category":"command-prompt","format":"markdown","content":"# 存储命令\n\n存储命令提供全面的浏览器存储管理，包括 Cookie、localStorage、sessionStorage 和 IndexedDB。\n\n## 概述\n\n存储命令模块支持管理所有浏览器存储机制，提供数据持久化和检索功能。\n\n::: pydoll.commands.storage_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n存储命令用于跨不同机制管理浏览器存储：\n\n```python\nfrom pydoll.commands.storage_commands import get_cookies, set_cookies, clear_data_for_origin\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get cookies for a domain\nconnection = ConnectionHandler()\ncookies = await get_cookies(connection, urls=[\"https://example.com\"])\n\n# Set a new cookie\nawait set_cookies(connection, cookies=[{\n    \"name\": \"session_id\",\n    \"value\": \"abc123\",\n    \"domain\": \"example.com\",\n    \"path\": \"/\",\n    \"httpOnly\": True,\n    \"secure\": True\n}])\n\n# Clear all storage for an origin\nawait clear_data_for_origin(\n    connection,\n    origin=\"https://example.com\",\n    storage_types=\"all\"\n)\n```\n\n## 关键功能\n\n存储命令模块提供以下函数：\n\n### Cookie 管理\n- `get_cookies()` - 通过 URL 或域名获取 Cookie\n- `set_cookies()` - 设置新 Cookie\n- `delete_cookies()` - 删除特定 Cookie\n- `clear_cookies()` - 清除所有 Cookie\n\n\n### 本地存储\n- `get_dom_storage_items()` - 获取localStorage\n- `set_dom_storage_item()` - 设置localStorage\n- `remove_dom_storage_item()` - 移除localStorage\n- `clear_dom_storage()` - 清除localStorage\n\n### 会话存储\n- 会话存储操作（类似于本地存储）\n- 特定会话的数据管理\n- 选项卡隔离存储\n\n### IndexedDB\n- `get_database_names()` - 获取 IndexedDB 数据库\n- `request_database()` - 访问数据库结构\n- `request_data()` - 查询数据库数据\n- `clear_object_store()` - 清除对象存储\n\n### 缓存存储\n- `request_cache_names()` - 获取缓存名称\n- `request_cached_response()` - 获取缓存响应\n- `delete_cache()` - 删除缓存条目\n\n### 应用程序缓存（已弃用）\n- 支持旧版应用程序缓存\n- 基于清单的缓存\n\n## 高级功能\n\n### 批量操作\n```python\n# Clear all storage types for multiple origins\norigins = [\"https://example.com\", \"https://api.example.com\"]\nfor origin in origins:\n    await clear_data_for_origin(\n        connection,\n        origin=origin,\n        storage_types=\"cookies,local_storage,session_storage,indexeddb\"\n    )\n```\n\n### 存储配额\n```python\n# Get storage quota information\nquota_info = await get_usage_and_quota(connection, origin=\"https://example.com\")\nprint(f\"Used: {quota_info.usage} bytes\")\nprint(f\"Quota: {quota_info.quota} bytes\")\n```\n\n### Cross-Origin 存储\n```python\n# Manage storage across different origins\nawait set_cookies(connection, cookies=[{\n    \"name\": \"cross_site_token\",\n    \"value\": \"token123\",\n    \"domain\": \".example.com\",  # Applies to all subdomains\n    \"sameSite\": \"None\",\n    \"secure\": True\n}])\n```\n\n## 存储类型\n\n该模块支持多种存储机制：\n\n| 存储类型 | 持久性 | 范围 | 容量 |\n|-----------|----------|----------|----------|\n| Cookies | 持久性 | 域/路径 | 每个 cookie 约 4KB |\n| localStorage | 持久性 | 来源 | 约 5-10MB |\n| sessionStorage | 会话 | Tab | 约 5-10MB |\n| IndexedDB | 持久性 | 来源 | 大容量 (GB+) |\n| Cache API | 持久性 | 来源 | 大容量 |\n\n!!! warning \"Privacy Considerations\"\n    Storage operations can affect user privacy. Always handle storage data responsibly and in compliance with privacy regulations. ","isInternal":false,"tokens":743,"sizeBytes":3603},{"name":"target.md","path":"docs/zh/api/commands/target.md","rawUrl":"https://raw.githubusercontent.com/autoscrape-labs/pydoll/HEAD/docs/zh/api/commands/target.md","title":"Command: /target","category":"command-prompt","format":"markdown","content":"# Target命令\n\nTarget命令管理浏览器目标，包括标签页、窗口和其他浏览上下文。\n\n## 概述\n\nTarget命令模块提供创建、管理和控制浏览器目标（例如标签页、弹出窗口和服务工作线程）的功能。\n\n::: pydoll.commands.target_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\nTarget命令由浏览器类内部使用，用于管理标签页和窗口：\n\n```python\nfrom pydoll.commands.target_commands import get_targets, create_target, close_target\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get all browser targets\nconnection = ConnectionHandler()\ntargets = await get_targets(connection)\n\n# Create a new tab\nnew_target = await create_target(connection, url=\"https://example.com\")\n\n# Close a target\nawait close_target(connection, target_id=new_target.target_id)\n```\n\n## 主要功能\n\nTarget命令模块提供以下功能：\n\n\n### Target管理\n- `get_targets()` - 列出所有浏览器Target\n- `create_target()` - 创建新的标签页或窗口\n- `close_target()` - 关闭特定Target\n- `activate_target()` - 将Target置于前台\n\n### Target 信息\n- `get_target_info()` - 获取详细的Target信息\n- Target类型：页面、background_page、service_worker、浏览器\n- Target状态：已连接、已分离、崩溃\n\n### Session 管理\n- `attach_to_target()` - 附加到Target进行控制\n- `detach_from_target()` - 分离Target\n- `send_message_to_target()` - 向Target发送命令\n\n### 浏览器上下文\n- `create_browser_context()` - 创建独立的浏览器上下文\n- `dispose_browser_context()` - 移除浏览器上下文\n- `get_browser_contexts()` - 列出浏览器上下文\n\n## 目标类型\n\n可以管理不同类型的目标：\n\n### 页面 Targets\n```python\n# Create a new tab\npage_target = await create_target(\n    connection,\n    url=\"https://example.com\",\n    width=1920,\n    height=1080,\n    browser_context_id=None  # Default context\n)\n```\n\n### 弹窗\n```python\n# Create a popup window\npopup_target = await create_target(\n    connection,\n    url=\"https://popup.example.com\",\n    width=800,\n    height=600,\n    new_window=True\n)\n```\n\n### 无痕上下文\n```python\n# Create incognito browser context\nincognito_context = await create_browser_context(connection)\n\n# Create tab in incognito context\nincognito_tab = await create_target(\n    connection,\n    url=\"https://private.example.com\",\n    browser_context_id=incognito_context.browser_context_id\n)\n```\n\n!!! info \"Headless 与 Headed：上下文如何呈现\"\n    浏览器上下文是逻辑上的隔离环境。在 Headed 模式下，在新的上下文中创建的第一个页面通常会打开一个新的系统窗口。 在 Headless 模式下不会显示窗口——隔离依然存在于后台（cookies、storage、缓存与认证状态仍按上下文分离）。在 CI/Headless 环境中优先使用上下文以获得更高性能与更干净的隔离。\n\n## 高级特性\n\n### 目标事件\nTarget命令可与各种Target事件配合使用：\n- `Target.targetCreated` - 新Target创建\n- `Target.targetDestroyed` - Target关闭\n- `Target.targetInfoChanged` - Target信息更新\n- `Target.targetCrashed` - Target崩溃\n\n### 多Target协调\n\n```python\n# Manage multiple tabs\ntargets = await get_targets(connection)\npage_targets = [t for t in targets if t.type == \"page\"]\n\nfor target in page_targets:\n    # Perform operations on each tab\n    await activate_target(connection, target_id=target.target_id)\n    # ... do work in this tab\n```\n\n### Target 隔离\n```python\n# Create isolated browser context for testing\ntest_context = await create_browser_context(connection)\n\n# All targets in this context are isolated\ntest_tab1 = await create_target(\n    connection, \n    url=\"https://test1.com\",\n    browser_context_id=test_context.browser_context_id\n)\n\ntest_tab2 = await create_target(\n    connection,\n    url=\"https://test2.com\", \n    browser_context_id=test_context.browser_context_id\n)\n```\n\n!!! note \"Browser Integration\"\n    Target commands are primarily used internally by the `Chrome` and `Edge` browser classes. The high-level browser APIs provide more convenient methods for tab management. ","isInternal":false,"tokens":858,"sizeBytes":4249}],"systemPromptSnippet":"<agent_rules repository=\"autoscrape-labs/pydoll\">\n\n<!-- Skill/Rule: Command: /browser (docs/en/api/commands/browser.md) -->\n# Browser Commands\n\nBrowser commands provide low-level control over browser instances and their configuration.\n\n## Overview\n\nThe browser commands module handles browser-level operations such as version information, target management, and browser-wide settings.\n\n::: pydoll.commands.browser_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nBrowser commands are typically used internally by browser classes to manage browser instances:\n\n```python\nfrom pydoll.commands.browser_commands import get_version\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get browser version information\nconnection = ConnectionHandler()\nversion_info = await get_version(connection)\n```\n\n## Available Commands\n\nThe browser commands module provides functions for:\n\n- Getting browser version and user agent information\n- Managing browser targets (tabs, windows)\n- Controlling browser-wide settings and permissions\n- Handling browser lifecycle events\n\n!!! note \"Internal Usage\"\n    These commands are primarily used internally by the `Chrome` and `Edge` browser classes. Direct usage is recommended only for advanced scenarios. \n\n<!-- Skill/Rule: Command: /dom (docs/en/api/commands/dom.md) -->\n# DOM Commands\n\nDOM commands provide comprehensive functionality for interacting with the Document Object Model of web pages.\n\n## Overview\n\nThe DOM commands module is one of the most important modules in Pydoll, providing all the functionality needed to find, interact with, and manipulate HTML elements on web pages.\n\n::: pydoll.commands.dom_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nDOM commands are used extensively by the `WebElement` class and element finding methods:\n\n```python\nfrom pydoll.commands.dom_commands import query_selector, get_attributes\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Find element and get its attributes\nconnection = ConnectionHandler()\nnode_id = await query_selector(connection, selector=\"#username\")\nattributes = await get_attributes(connection, node_id=node_id)\n```\n\n## Key Functionality\n\nThe DOM commands module provides functions for:\n\n### Element Finding\n- `query_selector()` - Find single element by CSS selector\n- `query_selector_all()` - Find multiple elements by CSS selector\n- `get_document()` - Get the document root node\n\n### Element Interaction\n- `click_element()` - Click on elements\n- `focus_element()` - Focus elements\n- `set_attribute_value()` - Set element attributes\n- `get_attributes()` - Get element attributes\n\n### Element Information\n- `get_box_model()` - Get element positioning and dimensions\n- `describe_node()` - Get detailed element information\n- `get_outer_html()` - Get element HTML content\n\n### DOM Manipulation\n- `remove_node()` - Remove elements from DOM\n- `set_node_value()` - Set element values\n- `request_child_nodes()` - Get child elements\n\n!!! tip \"High-Level APIs\"\n    While these commands provide powerful low-level access, most users should use the higher-level `WebElement` class methods like `click()`, `type_text()`, and `get_attribute()` which use these commands internally. \n\n<!-- Skill/Rule: Command: /fetch (docs/en/api/commands/fetch.md) -->\n# Fetch Commands\n\nFetch commands provide advanced network request handling and interception capabilities using the Fetch API domain.\n\n## Overview\n\nThe fetch commands module enables sophisticated network request management, including request modification, response interception, and authentication handling.\n\n::: pydoll.commands.fetch_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nFetch commands are used for advanced network interception and request handling:\n\n```python\nfrom pydoll.commands.fetch_commands import enable, request_paused, continue_request\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable fetch domain\nconnection = ConnectionHandler()\nawait enable(connection, patterns=[{\n    \"urlPattern\": \"*\",\n    \"requestStage\": \"Request\"\n}])\n\n# Handle paused requests\nasync def handle_paused_request(request_id, request):\n    # Modify request or continue as-is\n    await continue_request(connection, request_id=request_id)\n```\n\n## Key Functionality\n\nThe fetch commands module provides functions for:\n\n### Request Interception\n- `enable()` - Enable fetch domain with patterns\n- `disable()` - Disable fetch domain\n- `continue_request()` - Continue intercepted requests\n- `fail_request()` - Fail requests with specific errors\n\n### Request Modification\n- Modify request headers\n- Change request URLs\n- Alter request methods (GET, POST, etc.)\n- Modify request bodies\n\n### Response Handling\n- `fulfill_request()` - Provide custom responses\n- `get_response_body()` - Get response content\n- Response header modification\n- Response status code control\n\n### Authentication\n- `continue_with_auth()` - Handle authentication challenges\n- Basic authentication support\n- Custom authentication flows\n\n## Advanced Features\n\n### Pattern-Based Interception\n```python\n# Intercept specific URL patterns\npatterns = [\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"},\n    {\"urlPattern\": \"*.js\", \"requestStage\": \"Response\"},\n    {\"urlPattern\": \"https://example.com/*\", \"requestStage\": \"Request\"}\n]\n\nawait enable(connection, patterns=patterns)\n```\n\n### Request Modification\n```python\n# Modify intercepted requests\nasync def modify_request(request_id, request):\n    # Add authentication header\n    headers = request.headers.copy()\n    headers[\"Authorization\"] = \"Bearer token123\"\n    \n    # Continue with modified headers\n    await continue_request(\n        connection,\n        request_id=request_id,\n        headers=headers\n    )\n```\n\n### Response Mocking\n```python\n# Mock API responses\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers=[\n        {\"name\": \"Content-Type\", \"value\": \"application/json\"},\n        {\"name\": \"Access-Control-Allow-Origin\", \"value\": \"*\"}\n    ],\n    body='{\"status\": \"success\", \"data\": {\"mocked\": true}}'\n)\n```\n\n### Authentication Handling\n```python\n# Handle authentication challenges\nawait continue_with_auth(\n    connection,\n    request_id=request_id,\n    auth_challenge_response={\n        \"response\": \"ProvideCredentials\",\n        \"username\": \"user\",\n        \"password\": \"pass\"\n    }\n)\n```\n\n## Request Stages\n\nFetch commands can intercept requests at different stages:\n\n| Stage | Description | Use Cases |\n|-------|-------------|-----------|\n| Request | Before request is sent | Modify headers, URL, method |\n| Response | After response received | Mock responses, modify content |\n\n## Error Handling\n\n```python\n# Fail requests with specific errors\nawait fail_request(\n    connection,\n    request_id=request_id,\n    error_reason=\"ConnectionRefused\"  # or \"AccessDenied\", \"TimedOut\", etc.\n)\n```\n\n## Integration with Network Commands\n\nFetch commands work alongside network commands but provide more granular control:\n\n- **Network Commands**: Broader network monitoring and control\n- **Fetch Commands**: Specific request/response interception and modification\n\n!!! tip \"Performance Considerations\"\n    Fetch interception can impact page loading performance. Use specific URL patterns and disable when not needed to minimize overhead. \n\n<!-- Skill/Rule: Command: /index (docs/en/api/commands/index.md) -->\n# Commands Overview\n\nThe Commands module provides high-level interfaces for interacting with Chrome DevTools Protocol (CDP) domains. Each command module corresponds to a specific CDP domain and provides methods to execute various browser operations.\n\n## Available Command Modules\n\n### Browser Commands\n- **Module**: `browser_commands.py`\n- **Purpose**: Browser-level operations and window management\n- **Documentation**: [Browser Commands](browser.md)\n\n### DOM Commands\n- **Module**: `dom_commands.py`\n- **Purpose**: DOM tree manipulation and element operations\n- **Documentation**: [DOM Commands](dom.md)\n\n### Input Commands\n- **Module**: `input_commands.py`\n- **Purpose**: Input event simulation (keyboard, mouse, touch)\n- **Documentation**: [Input Commands](input.md)\n\n### Network Commands\n- **Module**: `network_commands.py`\n- **Purpose**: Network monitoring and request interception\n- **Documentation**: [Network Commands](network.md)\n\n### Page Commands\n- **Module**: `page_commands.py`\n- **Purpose**: Page lifecycle management and navigation\n- **Documentation**: [Page Commands](page.md)\n\n### Runtime Commands\n- **Module**: `runtime_commands.py`\n- **Purpose**: JavaScript execution and runtime management\n- **Documentation**: [Runtime Commands](runtime.md)\n\n### Storage Commands\n- **Module**: `storage_commands.py`\n- **Purpose**: Browser storage access (cookies, local storage, etc.)\n- **Documentation**: [Storage Commands](storage.md)\n\n### Target Commands\n- **Module**: `target_commands.py`\n- **Purpose**: Target management and tab operations\n- **Documentation**: [Target Commands](target.md)\n\n### Fetch Commands\n- **Module**: `fetch_commands.py`\n- **Purpose**: Network request interception and modification\n- **Documentation**: [Fetch Commands](fetch.md)\n\n## Usage Pattern\n\nCommands are typically accessed through the browser or tab instances:\n\n```python\nfrom pydoll.browser.chromium import Chrome\n\n# Initialize browser\nbrowser = Chrome()\nawait browser.start()\n\n# Get active tab\ntab = await browser.get_active_tab()\n\n# Use commands through the tab\nawait tab.navigate(\"https://example.com\")\nelement = await tab.find(id=\"button\")\nawait element.click()\n```\n\n## Command Structure\n\nEach command module follows a consistent pattern:\n- **Static methods**: For direct command execution\n- **Type hints**: Full type safety with protocol types\n- **Error handling**: Proper exception handling for CDP errors\n- **Documentation**: Comprehensive docstrings with examples \n\n<!-- Skill/Rule: Command: /input (docs/en/api/commands/input.md) -->\n# Input Commands\n\nInput commands handle mouse and keyboard interactions, providing human-like input simulation.\n\n## Overview\n\nThe input commands module provides functionality for simulating user input including mouse movements, clicks, keyboard typing, and key presses.\n\n::: pydoll.commands.input_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nInput commands are used by element interaction methods and can be used directly for advanced input scenarios:\n\n```python\nfrom pydoll.commands.input_commands import dispatch_mouse_event, dispatch_key_event\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Simulate mouse click\nconnection = ConnectionHandler()\nawait dispatch_mouse_event(\n    connection, \n    type=\"mousePressed\", \n    x=100, \n    y=200, \n    button=\"left\"\n)\n\n# Simulate keyboard typing\nawait dispatch_key_event(\n    connection,\n    type=\"keyDown\",\n    key=\"Enter\"\n)\n```\n\n## Key Functionality\n\nThe input commands module provides functions for:\n\n### Mouse Events\n- `dispatch_mouse_event()` - Mouse clicks, movements, and wheel events\n- Mouse button states (left, right, middle)\n- Coordinate-based positioning\n- Drag and drop operations\n\n### Keyboard Events\n- `dispatch_key_event()` - Key press and release events\n- `insert_text()` - Direct text insertion\n- Special key handling (Enter, Tab, Arrow keys, etc.)\n- Modifier keys (Ctrl, Alt, Shift)\n\n### Touch Events\n- Touch screen simulation\n- Multi-touch gestures\n- Touch coordinates and pressure\n\n## Human-like Behavior\n\nThe input commands support human-like behavior patterns:\n\n- Natural mouse movement curves\n- Realistic typing speeds and patterns\n- Random micro-delays between actions\n- Pressure-sensitive touch events\n\n!!! tip \"Element Methods\"\n    For most use cases, use the higher-level element methods like `element.click()` and `element.type_text()` which provide a more convenient API and handle common scenarios automatically. \n\n<!-- Skill/Rule: Command: /network (docs/en/api/commands/network.md) -->\n# Network Commands\n\nNetwork commands provide comprehensive control over network requests, responses, and browser networking behavior.\n\n## Overview\n\nThe network commands module enables request interception, response modification, cookie management, and network monitoring capabilities.\n\n::: pydoll.commands.network_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nNetwork commands are used for advanced scenarios like request interception and network monitoring:\n\n```python\nfrom pydoll.commands.network_commands import enable, set_request_interception\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable network monitoring\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Enable request interception\nawait set_request_interception(connection, patterns=[{\"urlPattern\": \"*\"}])\n```\n\n## Key Functionality\n\nThe network commands module provides functions for:\n\n### Request Management\n- `enable()` / `disable()` - Enable/disable network monitoring\n- `set_request_interception()` - Intercept and modify requests\n- `continue_intercepted_request()` - Continue or modify intercepted requests\n- `get_request_post_data()` - Get request body data\n\n### Response Handling\n- `get_response_body()` - Get response content\n- `fulfill_request()` - Provide custom responses\n- `fail_request()` - Simulate network failures\n\n### Cookie Management\n- `get_cookies()` - Get browser cookies\n- `set_cookies()` - Set browser cookies\n- `delete_cookies()` - Delete specific cookies\n- `clear_browser_cookies()` - Clear all cookies\n\n### Cache Control\n- `clear_browser_cache()` - Clear browser cache\n- `set_cache_disabled()` - Disable browser cache\n- `get_response_body_for_interception()` - Get cached responses\n\n### Security & Headers\n- `set_user_agent_override()` - Override user agent\n- `set_extra_http_headers()` - Add custom headers\n- `emulate_network_conditions()` - Simulate network conditions\n\n## Advanced Use Cases\n\n### Request Interception\n```python\n# Intercept and modify requests\nawait set_request_interception(connection, patterns=[\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"}\n])\n\n# Handle intercepted request\nasync def handle_request(request):\n    if \"api/login\" in request.url:\n        # Modify request headers\n        headers = request.headers.copy()\n        headers[\"Authorization\"] = \"Bearer token\"\n        await continue_intercepted_request(\n            connection, \n            request_id=request.request_id,\n            headers=headers\n        )\n```\n\n### Response Mocking\n```python\n# Mock API responses\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers={\"Content-Type\": \"application/json\"},\n    body='{\"status\": \"success\"}'\n)\n```\n\n!!! warning \"Performance Impact\"\n    Network interception can impact page loading performance. Use selectively and disable when not needed. \n\n<!-- Skill/Rule: Command: /page (docs/en/api/commands/page.md) -->\n# Page Commands\n\nPage commands handle page navigation, lifecycle events, and page-level operations.\n\n## Overview\n\nThe page commands module provides functionality for navigating between pages, managing page lifecycle, handling JavaScript execution, and controlling page behavior.\n\n::: pydoll.commands.page_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nPage commands are used extensively by the `Tab` class for navigation and page management:\n\n```python\nfrom pydoll.commands.page_commands import navigate, reload, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Navigate to a URL\nconnection = ConnectionHandler()\nawait enable(connection)  # Enable page events\nawait navigate(connection, url=\"https://example.com\")\n\n# Reload the page\nawait reload(connection)\n```\n\n## Key Functionality\n\nThe page commands module provides functions for:\n\n### Navigation\n- `navigate()` - Navigate to URLs\n- `reload()` - Reload current page\n- `go_back()` - Navigate back in history\n- `go_forward()` - Navigate forward in history\n- `stop_loading()` - Stop page loading\n\n### Page Lifecycle\n- `enable()` / `disable()` - Enable/disable page events\n- `get_frame_tree()` - Get page frame structure\n- `get_navigation_history()` - Get navigation history\n\n### Content Management\n- `get_resource_content()` - Get page resource content\n- `search_in_resource()` - Search within page resources\n- `set_document_content()` - Set page HTML content\n\n### Screenshots & PDF\n- `capture_screenshot()` - Take page screenshots\n- `print_to_pdf()` - Generate PDF from page\n- `capture_snapshot()` - Capture page snapshots\n\n### JavaScript Execution\n- `add_script_to_evaluate_on_new_document()` - Add startup scripts\n- `remove_script_to_evaluate_on_new_document()` - Remove startup scripts\n\n### Page Settings\n- `set_lifecycle_events_enabled()` - Control lifecycle events\n- `set_ad_blocking_enabled()` - Enable/disable ad blocking\n- `set_bypass_csp()` - Bypass Content Security Policy\n\n## Advanced Features\n\n### Frame Management\n```python\n# Get all frames in the page\nframe_tree = await get_frame_tree(connection)\nfor frame in frame_tree.child_frames:\n    print(f\"Frame: {frame.frame.url}\")\n```\n\n### Resource Interception\n```python\n# Get resource content\ncontent = await get_resource_content(\n    connection, \n    frame_id=frame_id, \n    url=\"https://example.com/script.js\"\n)\n```\n\n### Page Events\nThe page commands work with various page events:\n- `Page.loadEventFired` - Page load completed\n- `Page.domContentEventFired` - DOM content loaded\n- `Page.frameNavigated` - Frame navigation\n- `Page.frameStartedLoading` - Frame loading started\n\n!!! tip \"Tab Class Integration\"\n    Most page operations are available through the `Tab` class methods like `tab.go_to()`, `tab.reload()`, and `tab.screenshot()` which provide a more convenient API. \n\n<!-- Skill/Rule: Command: /runtime (docs/en/api/commands/runtime.md) -->\n# Runtime Commands\n\nRuntime commands provide JavaScript execution capabilities and runtime environment management.\n\n## Overview\n\nThe runtime commands module enables JavaScript code execution, object inspection, and runtime environment control within browser contexts.\n\n::: pydoll.commands.runtime_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nRuntime commands are used for JavaScript execution and runtime management:\n\n```python\nfrom pydoll.commands.runtime_commands import evaluate, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable runtime events\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Execute JavaScript\nresult = await evaluate(\n    connection, \n    expression=\"document.title\",\n    return_by_value=True\n)\nprint(result.value)  # Page title\n```\n\n## Key Functionality\n\nThe runtime commands module provides functions for:\n\n### JavaScript Execution\n- `evaluate()` - Execute JavaScript expressions\n- `call_function_on()` - Call functions on objects\n- `compile_script()` - Compile JavaScript for reuse\n- `run_script()` - Run compiled scripts\n\n### Object Management\n- `get_properties()` - Get object properties\n- `release_object()` - Release object references\n- `release_object_group()` - Release object groups\n\n### Runtime Control\n- `enable()` / `disable()` - Enable/disable runtime events\n- `discard_console_entries()` - Clear console entries\n- `set_custom_object_formatter_enabled()` - Enable custom formatters\n\n### Exception Handling\n- `set_async_call_stack_depth()` - Set call stack depth\n- Exception capture and reporting\n- Error object inspection\n\n## Advanced Usage\n\n### Complex JavaScript Execution\n```python\n# Execute complex JavaScript with error handling\nscript = \"\"\"\ntry {\n    const elements = document.querySelectorAll('.item');\n    return Array.from(elements).map(el => ({\n        text: el.textContent,\n        href: el.href\n    }));\n} catch (error) {\n    return { error: error.message };\n}\n\"\"\"\n\nresult = await evaluate(\n    connection,\n    expression=script,\n    return_by_value=True,\n    await_promise=True\n)\n```\n\n### Object Inspection\n```python\n# Get detailed object properties\nproperties = await get_properties(\n    connection,\n    object_id=object_id,\n    own_properties=True,\n    accessor_properties_only=False\n)\n\nfor prop in properties:\n    print(f\"{prop.name}: {prop.value}\")\n```\n\n### Console Integration\nRuntime commands integrate with browser console:\n- Console messages and errors\n- Console API method calls\n- Custom console formatters\n\n!!! note \"Performance Considerations\"\n    JavaScript execution through runtime commands can be slower than native browser execution. Use judiciously for complex operations. \n\n<!-- Skill/Rule: Command: /storage (docs/en/api/commands/storage.md) -->\n# Storage Commands\n\nStorage commands provide comprehensive browser storage management including cookies, localStorage, sessionStorage, and IndexedDB.\n\n## Overview\n\nThe storage commands module enables management of all browser storage mechanisms, providing functionality for data persistence and retrieval.\n\n::: pydoll.commands.storage_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nStorage commands are used for managing browser storage across different mechanisms:\n\n```python\nfrom pydoll.commands.storage_commands import get_cookies, set_cookies, clear_data_for_origin\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get cookies for a domain\nconnection = ConnectionHandler()\ncookies = await get_cookies(connection, urls=[\"https://example.com\"])\n\n# Set a new cookie\nawait set_cookies(connection, cookies=[{\n    \"name\": \"session_id\",\n    \"value\": \"abc123\",\n    \"domain\": \"example.com\",\n    \"path\": \"/\",\n    \"httpOnly\": True,\n    \"secure\": True\n}])\n\n# Clear all storage for an origin\nawait clear_data_for_origin(\n    connection,\n    origin=\"https://example.com\",\n    storage_types=\"all\"\n)\n```\n\n## Key Functionality\n\nThe storage commands module provides functions for:\n\n### Cookie Management\n- `get_cookies()` - Get cookies by URL or domain\n- `set_cookies()` - Set new cookies\n- `delete_cookies()` - Delete specific cookies\n- `clear_cookies()` - Clear all cookies\n\n### Local Storage\n- `get_dom_storage_items()` - Get localStorage items\n- `set_dom_storage_item()` - Set localStorage item\n- `remove_dom_storage_item()` - Remove localStorage item\n- `clear_dom_storage()` - Clear localStorage\n\n### Session Storage\n- Session storage operations (similar to localStorage)\n- Session-specific data management\n- Tab-isolated storage\n\n### IndexedDB\n- `get_database_names()` - Get IndexedDB databases\n- `request_database()` - Access database structure\n- `request_data()` - Query database data\n- `clear_object_store()` - Clear object stores\n\n### Cache Storage\n- `request_cache_names()` - Get cache names\n- `request_cached_response()` - Get cached responses\n- `delete_cache()` - Delete cache entries\n\n### Application Cache (Deprecated)\n- Legacy application cache support\n- Manifest-based caching\n\n## Advanced Features\n\n### Bulk Operations\n```python\n# Clear all storage types for multiple origins\norigins = [\"https://example.com\", \"https://api.example.com\"]\nfor origin in origins:\n    await clear_data_for_origin(\n        connection,\n        origin=origin,\n        storage_types=\"cookies,local_storage,session_storage,indexeddb\"\n    )\n```\n\n### Storage Quotas\n```python\n# Get storage quota information\nquota_info = await get_usage_and_quota(connection, origin=\"https://example.com\")\nprint(f\"Used: {quota_info.usage} bytes\")\nprint(f\"Quota: {quota_info.quota} bytes\")\n```\n\n### Cross-Origin Storage\n```python\n# Manage storage across different origins\nawait set_cookies(connection, cookies=[{\n    \"name\": \"cross_site_token\",\n    \"value\": \"token123\",\n    \"domain\": \".example.com\",  # Applies to all subdomains\n    \"sameSite\": \"None\",\n    \"secure\": True\n}])\n```\n\n## Storage Types\n\nThe module supports various storage mechanisms:\n\n| Storage Type | Persistence | Scope | Capacity |\n|--------------|-------------|-------|----------|\n| Cookies | Persistent | Domain/Path | ~4KB per cookie |\n| localStorage | Persistent | Origin | ~5-10MB |\n| sessionStorage | Session | Tab | ~5-10MB |\n| IndexedDB | Persistent | Origin | Large (GB+) |\n| Cache API | Persistent | Origin | Large |\n\n!!! warning \"Privacy Considerations\"\n    Storage operations can affect user privacy. Always handle storage data responsibly and in compliance with privacy regulations. \n\n<!-- Skill/Rule: Command: /target (docs/en/api/commands/target.md) -->\n# Target Commands\n\nTarget commands manage browser targets including tabs, windows, and other browsing contexts.\n\n## Overview\n\nThe target commands module provides functionality for creating, managing, and controlling browser targets such as tabs, popup windows, and service workers.\n\n::: pydoll.commands.target_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nTarget commands are used internally by browser classes to manage tabs and windows:\n\n```python\nfrom pydoll.commands.target_commands import get_targets, create_target, close_target\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get all browser targets\nconnection = ConnectionHandler()\ntargets = await get_targets(connection)\n\n# Create a new tab\nnew_target = await create_target(connection, url=\"https://example.com\")\n\n# Close a target\nawait close_target(connection, target_id=new_target.target_id)\n```\n\n## Key Functionality\n\nThe target commands module provides functions for:\n\n### Target Management\n- `get_targets()` - List all browser targets\n- `create_target()` - Create new tabs or windows\n- `close_target()` - Close specific targets\n- `activate_target()` - Bring target to foreground\n\n### Target Information\n- `get_target_info()` - Get detailed target information\n- Target types: page, background_page, service_worker, browser\n- Target states: attached, detached, crashed\n\n### Session Management\n- `attach_to_target()` - Attach to target for control\n- `detach_from_target()` - Detach from target\n- `send_message_to_target()` - Send commands to targets\n\n### Browser Context\n- `create_browser_context()` - Create isolated browser context\n- `dispose_browser_context()` - Remove browser context\n- `get_browser_contexts()` - List browser contexts\n\n## Target Types\n\nDifferent types of targets can be managed:\n\n### Page Targets\n```python\n# Create a new tab\npage_target = await create_target(\n    connection,\n    url=\"https://example.com\",\n    width=1920,\n    height=1080,\n    browser_context_id=None  # Default context\n)\n```\n\n### Popup Windows\n```python\n# Create a popup window\npopup_target = await create_target(\n    connection,\n    url=\"https://popup.example.com\",\n    width=800,\n    height=600,\n    new_window=True\n)\n```\n\n### Incognito Contexts\n```python\n# Create incognito browser context\nincognito_context = await create_browser_context(connection)\n\n# Create tab in incognito context\nincognito_tab = await create_target(\n    connection,\n    url=\"https://private.example.com\",\n    browser_context_id=incognito_context.browser_context_id\n)\n```\n\n!!! info \"Headless vs Headed: how contexts show up\"\n    Browser contexts are isolated logical environments. In headed mode, the first page created inside a new context will usually open in a new OS window. In headless mode, no window is shown — the isolation remains purely logical (cookies, storage, cache and auth state are still separate per context). Prefer contexts in headless/CI pipelines for performance and clean isolation.\n\n## Advanced Features\n\n### Target Events\nTarget commands work with various target events:\n- `Target.targetCreated` - New target created\n- `Target.targetDestroyed` - Target closed\n- `Target.targetInfoChanged` - Target information updated\n- `Target.targetCrashed` - Target crashed\n\n### Multi-Target Coordination\n```python\n# Manage multiple tabs\ntargets = await get_targets(connection)\npage_targets = [t for t in targets if t.type == \"page\"]\n\nfor target in page_targets:\n    # Perform operations on each tab\n    await activate_target(connection, target_id=target.target_id)\n    # ... do work in this tab\n```\n\n### Target Isolation\n```python\n# Create isolated browser context for testing\ntest_context = await create_browser_context(connection)\n\n# All targets in this context are isolated\ntest_tab1 = await create_target(\n    connection, \n    url=\"https://test1.com\",\n    browser_context_id=test_context.browser_context_id\n)\n\ntest_tab2 = await create_target(\n    connection,\n    url=\"https://test2.com\", \n    browser_context_id=test_context.browser_context_id\n)\n```\n\n!!! note \"Browser Integration\"\n    Target commands are primarily used internally by the `Chrome` and `Edge` browser classes. The high-level browser APIs provide more convenient methods for tab management. \n\n<!-- Skill/Rule: Command: /browser (docs/pt/api/commands/browser.md) -->\n# Comandos do Navegador\n\nOs comandos do navegador fornecem controle de baixo nível sobre as instâncias do navegador e sua configuração.\n\n## Visão Geral\n\nO módulo de comandos do navegador lida com operações em nível de navegador, como informações de versão, gerenciamento de alvos (targets) e configurações globais do navegador.\n\n::: pydoll.commands.browser_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos do navegador são tipicamente usados internamente pelas classes do navegador para gerenciar instâncias do navegador:\n\n```python\nfrom pydoll.commands.browser_commands import get_version\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Obter informações da versão do navegador\nconnection = ConnectionHandler()\nversion_info = await get_version(connection)\n```\n\n## Comandos Disponíveis\n\nO módulo de comandos do navegador fornece funções para:\n\n- Obter informações de versão do navegador e user agent\n- Gerenciar alvos (targets) do navegador (abas, janelas)\n- Controlar configurações e permissões globais do navegador\n- Lidar com eventos do ciclo de vida do navegador\n\n!!! note \"Uso Interno\"\n    Esses comandos são usados principalmente internamente pelas classes de navegador `Chrome` e `Edge`. O uso direto é recomendado apenas para cenários avançados.\n\n<!-- Skill/Rule: Command: /dom (docs/pt/api/commands/dom.md) -->\n# Comandos DOM\n\nOs comandos DOM fornecem funcionalidade abrangente para interagir com o Document Object Model (Modelo de Objeto de Documento) das páginas web.\n\n## Visão Geral\n\nO módulo de comandos DOM é um dos módulos mais importantes no Pydoll, fornecendo toda a funcionalidade necessária para encontrar, interagir com e manipular elementos HTML em páginas web.\n\n::: pydoll.commands.dom_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos DOM são usados extensivamente pela classe `WebElement` e pelos métodos de localização de elementos:\n\n```python\nfrom pydoll.commands.dom_commands import query_selector, get_attributes\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Encontrar elemento e obter seus atributos\nconnection = ConnectionHandler()\nnode_id = await query_selector(connection, selector=\"#username\")\nattributes = await get_attributes(connection, node_id=node_id)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos DOM fornece funções para:\n\n### Localização de Elementos\n- `query_selector()` - Encontrar elemento único por seletor CSS\n- `query_selector_all()` - Encontrar múltiplos elementos por seletor CSS\n- `get_document()` - Obter o nó raiz do documento\n\n### Interação com Elementos\n- `click_element()` - Clicar em elementos\n- `focus_element()` - Focar em elementos\n- `set_attribute_value()` - Definir atributos do elemento\n- `get_attributes()` - Obter atributos do elemento\n\n### Informações do Elemento\n- `get_box_model()` - Obter posicionamento e dimensões do elemento\n- `describe_node()` - Obter informações detalhadas do elemento\n- `get_outer_html()` - Obter o conteúdo HTML do elemento\n\n### Manipulação do DOM\n- `remove_node()` - Remover elementos do DOM\n- `set_node_value()` - Definir valores do elemento\n- `request_child_nodes()` - Obter elementos filhos\n\n!!! tip \"APIs de Alto Nível\"\n    Embora esses comandos forneçam acesso poderoso de baixo nível, a maioria dos usuários deve usar os métodos de nível superior da classe `WebElement`, como `click()`, `type_text()` e `get_attribute()`, que usam esses comandos internamente.\n\n<!-- Skill/Rule: Command: /fetch (docs/pt/api/commands/fetch.md) -->\n# Comandos Fetch\n\nOs comandos Fetch fornecem capacidades avançadas de manipulação e interceptação de requisições de rede usando o domínio da API Fetch.\n\n## Visão Geral\n\nO módulo de comandos fetch permite o gerenciamento sofisticado de requisições de rede, incluindo modificação de requisições, interceptação de respostas e manipulação de autenticação.\n\n::: pydoll.commands.fetch_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos Fetch são usados para interceptação avançada de rede e manipulação de requisições:\n\n```python\nfrom pydoll.commands.fetch_commands import enable, request_paused, continue_request\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Habilitar domínio fetch\nconnection = ConnectionHandler()\nawait enable(connection, patterns=[{\n    \"urlPattern\": \"*\",\n    \"requestStage\": \"Request\"\n}])\n\n# Lidar com requisições pausadas\nasync def handle_paused_request(request_id, request):\n    # Modificar requisição ou continuar como está\n    await continue_request(connection, request_id=request_id)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos fetch fornece funções para:\n\n### Interceptação de Requisição\n- `enable()` - Habilitar domínio fetch com padrões\n- `disable()` - Desabilitar domínio fetch\n- `continue_request()` - Continuar requisições interceptadas\n- `fail_request()` - Falhar requisições com erros específicos\n\n### Modificação de Requisição\n- Modificar cabeçalhos da requisição\n- Alterar URLs da requisição\n- Alterar métodos da requisição (GET, POST, etc.)\n- Modificar corpos (bodies) da requisição\n\n### Manipulação de Resposta\n- `fulfill_request()` - Fornecer respostas customizadas\n- `get_response_body()` - Obter conteúdo da resposta\n- Modificação de cabeçalho de resposta\n- Controle do código de status da resposta\n\n### Autenticação\n- `continue_with_auth()` - Lidar com desafios de autenticação\n- Suporte a autenticação básica\n- Fluxos de autenticação customizados\n\n## Recursos Avançados\n\n### Interceptação Baseada em Padrões\n```python\n# Interceptar padrões de URL específicos\npatterns = [\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"},\n    {\"urlPattern\": \"*.js\", \"requestStage\": \"Response\"},\n    {\"urlPattern\": \"https://example.com/*\", \"requestStage\": \"Request\"}\n]\n\nawait enable(connection, patterns=patterns)\n```\n\n### Modificação de Requisição\n```python\n# Modificar requisições interceptadas\nasync def modify_request(request_id, request):\n    # Adicionar cabeçalho de autenticação\n    headers = request.headers.copy()\n    headers[\"Authorization\"] = \"Bearer token123\"\n    \n    # Continuar com cabeçalhos modificados\n    await continue_request(\n        connection,\n        request_id=request_id,\n        headers=headers\n    )\n```\n\n### Simulação de Resposta (Mocking)\n```python\n# Simular (mockar) respostas de API\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers=[\n        {\"name\": \"Content-Type\", \"value\": \"application/json\"},\n        {\"name\": \"Access-Control-Allow-Origin\", \"value\": \"*\"}\n    ],\n    body='{\"status\": \"success\", \"data\": {\"mocked\": true}}'\n)\n```\n\n### Manipulação de Autenticação\n```python\n# Lidar com desafios de autenticação\nawait continue_with_auth(\n    connection,\n    request_id=request_id,\n    auth_challenge_response={\n        \"response\": \"ProvideCredentials\",\n        \"username\": \"user\",\n        \"password\": \"pass\"\n    }\n)\n```\n\n## Estágios da Requisição\n\nOs comandos Fetch podem interceptar requisições em diferentes estágios:\n\n| Estágio | Descrição | Casos de Uso |\n|-------|-------------|-----------|\n| Requisição | Antes da requisição ser enviada | Modificar cabeçalhos, URL, método |\n| Resposta | Após a resposta ser recebida | Simular respostas, modificar conteúdo |\n\n## Manipulação de Erros\n\n```python\n# Falhar requisições com erros específicos\nawait fail_request(\n    connection,\n    request_id=request_id,\n    error_reason=\"ConnectionRefused\"  # ou \"AccessDenied\", \"TimedOut\", etc.\n)\n```\n\n## Integração com Comandos de Rede (Network)\n\nOs comandos Fetch trabalham em conjunto com os comandos de rede (Network), mas fornecem controle mais granular:\n\n- **Comandos de Rede (Network)**: Monitoramento e controle de rede mais amplos\n- **Comandos Fetch**: Interceptação e modificação específicas de requisição/resposta\n\n!!! tip \"Considerações de Performance\"\n    A interceptação do Fetch pode impactar a performance de carregamento da página. Use padrões de URL específicos e desabilite quando não for necessário para minimizar a sobrecarga (overhead).\n\n<!-- Skill/Rule: Command: /index (docs/pt/api/commands/index.md) -->\n# Visão Geral dos Comandos\n\nO módulo de Comandos (Commands) fornece interfaces de alto nível para interagir com os domínios do Chrome DevTools Protocol (CDP). Cada módulo de comando corresponde a um domínio CDP específico e fornece métodos para executar várias operações do navegador.\n\n## Módulos de Comando Disponíveis\n\n### Comandos do Navegador (Browser)\n- **Módulo**: `browser_commands.py`\n- **Propósito**: Operações em nível de navegador e gerenciamento de janelas\n- **Documentação**: [Comandos do Navegador](browser.md)\n\n### Comandos DOM\n- **Módulo**: `dom_commands.py`\n- **Propósito**: Manipulação da árvore DOM e operações de elementos\n- **Documentação**: [Comandos DOM](dom.md)\n\n### Comandos de Entrada (Input)\n- **Módulo**: `input_commands.py`\n- **Propósito**: Simulação de eventos de entrada (teclado, mouse, toque)\n- **Documentação**: [Comandos de Entrada](input.md)\n\n### Comandos de Rede (Network)\n- **Módulo**: `network_commands.py`\n- **Propósito**: Monitoramento de rede e interceptação de requisições\n- **Documentação**: [Comandos de Rede](network.md)\n\n### Comandos de Página (Page)\n- **Módulo**: `page_commands.py`\n- **Propósito**: Gerenciamento do ciclo de vida da página e navegação\n- **Documentação**: [Comandos de Página](page.md)\n\n### Comandos de Tempo de Execução (Runtime)\n- **Módulo**: `runtime_commands.py`\n- **Propósito**: Execução de JavaScript e gerenciamento de tempo de execução\n- **Documentação**: [Comandos de Tempo de Execução](runtime.md)\n\n### Comandos de Armazenamento (Storage)\n- **Módulo**: `storage_commands.py`\n- **Propósito**: Acesso ao armazenamento do navegador (cookies, local storage, etc.)\n- **Documentação**: [Comandos de Armazenamento](storage.md)\n\n### Comandos de Alvo (Target)\n- **Módulo**: `target_commands.py`\n- **Propósito**: Gerenciamento de alvos (targets) e operações de aba\n- **Documentação**: [Comandos de Alvo](target.md)\n\n### Comandos Fetch\n- **Módulo**: `fetch_commands.py`\n- **Propósito**: Interceptação e modificação de requisições de rede\n- **Documentação**: [Comandos Fetch](fetch.md)\n\n## Padrão de Uso\n\nOs comandos são tipicamente acessados através das instâncias do navegador (browser) ou aba (tab):\n\n```python\nfrom pydoll.browser.chromium import Chrome\n\n# Inicializa o navegador\nbrowser = Chrome()\nawait browser.start()\n\n# Obtém a aba ativa\ntab = await browser.get_active_tab()\n\n# Usa comandos através da aba\nawait tab.navigate(\"https://example.com\")\nelement = await tab.find(id=\"button\")\nawait element.click()\n```\n\n## Estrutura dos Comandos\n\nCada módulo de comando segue um padrão consistente:\n- **Métodos estáticos**: Para execução direta de comandos\n- **Dicas de tipo (Type hints)**: Segurança de tipo (type safety) completa com tipos de protocolo\n- **Tratamento de erros**: Tratamento de exceção adequado para erros CDP\n- **Documentação**: Docstrings abrangentes com exemplos\n\n<!-- Skill/Rule: Command: /input (docs/pt/api/commands/input.md) -->\n# Comandos de Entrada (Input)\n\nOs comandos de entrada lidam com interações de mouse e teclado, fornecendo simulação de entrada semelhante à humana.\n\n## Visão Geral\n\nO módulo de comandos de entrada fornece funcionalidade para simular a entrada do usuário, incluindo movimentos do mouse, cliques, digitação no teclado e pressionamento de teclas.\n\n::: pydoll.commands.input_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de entrada são usados por métodos de interação de elementos e podem ser usados diretamente para cenários de entrada avançados:\n\n```python\nfrom pydoll.commands.input_commands import dispatch_mouse_event, dispatch_key_event\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Simular clique do mouse\nconnection = ConnectionHandler()\nawait dispatch_mouse_event(\n    connection, \n    type=\"mousePressed\", \n    x=100, \n    y=200, \n    button=\"left\"\n)\n\n# Simular digitação do teclado\nawait dispatch_key_event(\n    connection,\n    type=\"keyDown\",\n    key=\"Enter\"\n)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de entrada fornece funções para:\n\n### Eventos de Mouse\n- `dispatch_mouse_event()` - Cliques, movimentos e eventos de roda do mouse\n- Estados dos botões do mouse (esquerdo, direito, meio)\n- Posicionamento baseado em coordenadas\n- Operações de arrastar e soltar (drag and drop)\n\n### Eventos de Teclado\n- `dispatch_key_event()` - Eventos de pressionar e soltar tecla\n- `insert_text()` - Inserção direta de texto\n- Manipulação de teclas especiais (Enter, Tab, teclas de seta, etc.)\n- Teclas modificadoras (Ctrl, Alt, Shift)\n\n### Eventos de Toque (Touch)\n- Simulação de tela de toque\n- Gestos multitoque (multi-touch)\n- Coordenadas e pressão do toque\n\n## Comportamento Semelhante ao Humano\n\nOs comandos de entrada suportam padrões de comportamento semelhantes ao humano:\n\n- Curvas naturais de movimento do mouse\n- Velocidades e padrões de digitação realistas\n- Micro-atrasos aleatórios entre ações\n- Eventos de toque sensíveis à pressão\n\n!!! tip \"Métodos de Elemento\"\n    Para a maioria dos casos de uso, utilize os métodos de elemento de nível superior, como `element.click()` e `element.type_text()`, que fornecem uma API mais conveniente e lidam com cenários comuns automaticamente.\n\n<!-- Skill/Rule: Command: /network (docs/pt/api/commands/network.md) -->\n# Comandos de Rede (Network)\n\nOs comandos de rede fornecem controle abrangente sobre requisições de rede, respostas e comportamento de rede do navegador.\n\n## Visão Geral\n\nO módulo de comandos de rede habilita a interceptação de requisições, modificação de respostas, gerenciamento de cookies e capacidades de monitoramento de rede.\n\n::: pydoll.commands.network_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de rede são usados para cenários avançados como interceptação de requisições e monitoramento de rede:\n\n```python\nfrom pydoll.commands.network_commands import enable, set_request_interception\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Habilitar monitoramento de rede\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Habilitar interceptação de requisições\nawait set_request_interception(connection, patterns=[{\"urlPattern\": \"*\"}])\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de rede fornece funções para:\n\n### Gerenciamento de Requisições\n- `enable()` / `disable()` - Habilitar/desabilitar monitoramento de rede\n- `set_request_interception()` - Interceptar e modificar requisições\n- `continue_intercepted_request()` - Continuar ou modificar requisições interceptadas\n- `get_request_post_data()` - Obter dados do corpo (body) da requisição\n\n### Manipulação de Respostas\n- `get_response_body()` - Obter conteúdo da resposta\n- `fulfill_request()` - Fornecer respostas customizadas\n- `fail_request()` - Simular falhas de rede\n\n### Gerenciamento de Cookies\n- `get_cookies()` - Obter cookies do navegador\n- `set_cookies()` - Definir cookies do navegador\n- `delete_cookies()` - Deletar cookies específicos\n- `clear_browser_cookies()` - Limpar todos os cookies\n\n### Controle de Cache\n- `clear_browser_cache()` - Limpar cache do navegador\n- `set_cache_disabled()` - Desabilitar cache do navegador\n- `get_response_body_for_interception()` - Obter respostas em cache\n\n### Segurança & Cabeçalhos\n- `set_user_agent_override()` - Sobrescrever user agent\n- `set_extra_http_headers()` - Adicionar cabeçalhos customizados\n- `emulate_network_conditions()` - Simular condições de rede\n\n## Casos de Uso Avançados\n\n### Interceptação de Requisição\n```python\n# Interceptar e modificar requisições\nawait set_request_interception(connection, patterns=[\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"}\n])\n\n# Lidar com requisição interceptada\nasync def handle_request(request):\n    if \"api/login\" in request.url:\n        # Modificar cabeçalhos da requisição\n        headers = request.headers.copy()\n        headers[\"Authorization\"] = \"Bearer token\"\n        await continue_intercepted_request(\n            connection, \n            request_id=request.request_id,\n            headers=headers\n        )\n```\n\n### Simulação de Resposta (Mocking)\n```python\n# Simular (mockar) respostas de API\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers={\"Content-Type\": \"application/json\"},\n    body='{\"status\": \"success\"}'\n)\n```\n\n!!! warning \"Impacto na Performance\"\n    A interceptação de rede pode impactar a performance de carregamento da página. Use seletivamente e desabilite quando não for necessário.\n\n<!-- Skill/Rule: Command: /page (docs/pt/api/commands/page.md) -->\n# Comandos de Página (Page)\n\nOs comandos de página lidam com a navegação da página, eventos do ciclo de vida e operações em nível de página.\n\n## Visão Geral\n\nO módulo de comandos de página fornece funcionalidade para navegar entre páginas, gerenciar o ciclo de vida da página, lidar com a execução de JavaScript e controlar o comportamento da página.\n\n::: pydoll.commands.page_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de página são usados extensivamente pela classe `Tab` para navegação e gerenciamento da página:\n\n```python\nfrom pydoll.commands.page_commands import navigate, reload, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Navegar para uma URL\nconnection = ConnectionHandler()\nawait enable(connection)  # Habilitar eventos da página\nawait navigate(connection, url=\"https://example.com\")\n\n# Recarregar a página\nawait reload(connection)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de página fornece funções para:\n\n### Navegação\n- `Maps()` - Navegar para URLs\n- `reload()` - Recarregar página atual\n- `go_back()` - Navegar para trás no histórico\n- `go_forward()` - Navegar para frente no histórico\n- `stop_loading()` - Parar carregamento da página\n\n### Ciclo de Vida da Página\n- `enable()` / `disable()` - Habilitar/desabilitar eventos da página\n- `get_frame_tree()` - Obter estrutura de frames da página\n- `get_navigation_history()` - Obter histórico de navegação\n\n### Gerenciamento de Conteúdo\n- `get_resource_content()` - Obter conteúdo de recurso da página\n- `search_in_resource()` - Pesquisar dentro de recursos da página\n- `set_document_content()` - Definir conteúdo HTML da página\n\n### Capturas de Tela & PDF\n- `capture_screenshot()` - Tirar capturas de tela da página\n- `print_to_pdf()` - Gerar PDF a partir da página\n- `capture_snapshot()` - Capturar snapshots da página\n\n### Execução de JavaScript\n- `add_script_to_evaluate_on_new_document()` - Adicionar scripts para avaliar em novo documento (scripts de inicialização)\n- `remove_script_to_evaluate_on_new_document()` - Remover scripts de inicialização\n\n### Configurações da Página\n- `set_lifecycle_events_enabled()` - Controlar eventos do ciclo de vida\n- `set_ad_blocking_enabled()` - Habilitar/desabilitar bloqueio de anúncios\n- `set_bypass_csp()` - Contornar (Bypass) Política de Segurança de Conteúdo (CSP)\n\n## Recursos Avançados\n\n### Gerenciamento de Frames\n```python\n# Obter todos os frames na página\nframe_tree = await get_frame_tree(connection)\nfor frame in frame_tree.child_frames:\n    print(f\"Frame: {frame.frame.url}\")\n```\n\n### Interceptação de Recursos\n```python\n# Obter conteúdo do recurso\ncontent = await get_resource_content(\n    connection, \n    frame_id=frame_id, \n    url=\"https://example.com/script.js\"\n)\n```\n\n### Eventos da Página\nOs comandos de página funcionam com vários eventos de página:\n- `Page.loadEventFired` - Carregamento da página concluído\n- `Page.domContentEventFired` - Conteúdo DOM carregado\n- `Page.frameNavigated` - Navegação do frame\n- `Page.frameStartedLoading` - Carregamento do frame iniciado\n\n!!! tip \"Integração com a Classe Tab\"\n    A maioria das operações de página está disponível através dos métodos da classe `Tab`, como `tab.go_to()`, `tab.reload()` e `tab.screenshot()`, que fornecem uma API mais conveniente.\n\n<!-- Skill/Rule: Command: /runtime (docs/pt/api/commands/runtime.md) -->\n# Comandos de Tempo de Execução (Runtime)\n\nOs comandos de tempo de execução fornecem capacidades de execução de JavaScript e gerenciamento do ambiente de tempo de execução.\n\n## Visão Geral\n\nO módulo de comandos de tempo de execução habilita a execução de código JavaScript, inspeção de objetos e controle do ambiente de tempo de execução dentro dos contextos do navegador.\n\n::: pydoll.commands.runtime_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de tempo de execução são usados para execução de JavaScript e gerenciamento do tempo de execução:\n\n```python\nfrom pydoll.commands.runtime_commands import evaluate, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Habilitar eventos de tempo de execução\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Executar JavaScript\nresult = await evaluate(\n    connection, \n    expression=\"document.title\",\n    return_by_value=True\n)\nprint(result.value)  # Título da página\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de tempo de execução fornece funções para:\n\n### Execução de JavaScript\n- `evaluate()` - Executar expressões JavaScript\n- `call_function_on()` - Chamar funções em objetos\n- `compile_script()` - Compilar JavaScript para reutilização\n- `run_script()` - Executar scripts compilados\n\n### Gerenciamento de Objetos\n- `get_properties()` - Obter propriedades do objeto\n- `release_object()` - Liberar referências de objeto\n- `release_object_group()` - Liberar grupos de objetos\n\n### Controle de Tempo de Execução\n- `enable()` / `disable()` - Habilitar/desabilitar eventos de tempo de execução\n- `discard_console_entries()` - Limpar entradas do console\n- `set_custom_object_formatter_enabled()` - Habilitar formatadores customizados\n\n### Manipulação de Exceções\n- `set_async_call_stack_depth()` - Definir profundidade da pilha de chamadas assíncronas\n- Captura e relatório de exceções\n- Inspeção de objeto de erro\n\n## Uso Avançado\n\n### Execução de JavaScript Complexo\n```python\n# Executar JavaScript complexo com tratamento de erros\nscript = \"\"\"\ntry {\n    const elements = document.querySelectorAll('.item');\n    return Array.from(elements).map(el => ({\n        text: el.textContent,\n        href: el.href\n    }));\n} catch (error) {\n    return { error: error.message };\n}\n\"\"\"\n\nresult = await evaluate(\n    connection,\n    expression=script,\n    return_by_value=True,\n    await_promise=True\n)\n```\n\n### Inspeção de Objeto\n```python\n# Obter propriedades detalhadas do objeto\nproperties = await get_properties(\n    connection,\n    object_id=object_id,\n    own_properties=True,\n    accessor_properties_only=False\n)\n\nfor prop in properties:\n    print(f\"{prop.name}: {prop.value}\")\n```\n\n### Integração com Console\nOs comandos de tempo de execução se integram ao console do navegador:\n- Mensagens e erros do console\n- Chamadas de método da API Console\n- Formatadores de console customizados\n\n!!! note \"Considerações de Performance\"\n    A execução de JavaScript através dos comandos de tempo de execução pode ser mais lenta do que a execução nativa do navegador. Use com moderação para operações complexas.\n\n<!-- Skill/Rule: Command: /storage (docs/pt/api/commands/storage.md) -->\n# Comandos de Armazenamento (Storage)\n\nOs comandos de armazenamento fornecem gerenciamento abrangente do armazenamento do navegador, incluindo cookies, localStorage, sessionStorage e IndexedDB.\n\n## Visão Geral\n\nO módulo de comandos de armazenamento permite o gerenciamento de todos os mecanismos de armazenamento do navegador, fornecendo funcionalidade para persistência e recuperação de dados.\n\n::: pydoll.commands.storage_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de armazenamento são usados para gerenciar o armazenamento do navegador em diferentes mecanismos:\n\n```python\nfrom pydoll.commands.storage_commands import get_cookies, set_cookies, clear_data_for_origin\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Obter cookies para um domínio\nconnection = ConnectionHandler()\ncookies = await get_cookies(connection, urls=[\"https://example.com\"])\n\n# Definir um novo cookie\nawait set_cookies(connection, cookies=[{\n    \"name\": \"session_id\",\n    \"value\": \"abc123\",\n    \"domain\": \"example.com\",\n    \"path\": \"/\",\n    \"httpOnly\": True,\n    \"secure\": True\n}])\n\n# Limpar todo o armazenamento para uma origem\nawait clear_data_for_origin(\n    connection,\n    origin=\"https://example.com\",\n    storage_types=\"all\"\n)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de armazenamento fornece funções para:\n\n### Gerenciamento de Cookies\n- `get_cookies()` - Obter cookies por URL ou domínio\n- `set_cookies()` - Definir novos cookies\n- `delete_cookies()` - Deletar cookies específicos\n- `clear_cookies()` - Limpar todos os cookies\n\n### Local Storage\n- `get_dom_storage_items()` - Obter itens do localStorage\n- `set_dom_storage_item()` - Definir item do localStorage\n- `remove_dom_storage_item()` - Remover item do localStorage\n- `clear_dom_storage()` - Limpar localStorage\n\n### Session Storage\n- Operações de session storage (semelhantes ao localStorage)\n- Gerenciamento de dados específicos da sessão\n- Armazenamento isolado por aba\n\n### IndexedDB\n- `get_database_names()` - Obter bancos de dados IndexedDB\n- `request_database()` - Acessar a estrutura do banco de dados\n- `request_data()` - Consultar dados do banco de dados\n- `clear_object_store()` - Limpar object stores\n\n### Cache Storage\n- `request_cache_names()` - Obter nomes de cache\n- `request_cached_response()` - Obter respostas em cache\n- `delete_cache()` - Deletar entradas de cache\n\n### Application Cache (Obsoleto)\n- Suporte a cache de aplicação legado\n- Cache baseado em manifesto\n\n## Recursos Avançados\n\n### Operações em Massa\n```python\n# Limpar todos os tipos de armazenamento para múltiplas origens\norigins = [\"https://example.com\", \"https://api.example.com\"]\nfor origin in origins:\n    await clear_data_for_origin(\n        connection,\n        origin=origin,\n        storage_types=\"cookies,local_storage,session_storage,indexeddb\"\n    )\n```\n\n### Cotas de Armazenamento\n```python\n# Obter informações de uso e cota de armazenamento\nquota_info = await get_usage_and_quota(connection, origin=\"https://example.com\")\nprint(f\"Usado: {quota_info.usage} bytes\")\nprint(f\"Cota: {quota_info.quota} bytes\")\n```\n\n### Armazenamento Cross-Origin\n```python\n# Gerenciar armazenamento entre diferentes origens\nawait set_cookies(connection, cookies=[{\n    \"name\": \"cross_site_token\",\n    \"value\": \"token123\",\n    \"domain\": \".example.com\",  # Aplica-se a todos os subdomínios\n    \"sameSite\": \"None\",\n    \"secure\": True\n}])\n```\n\n## Tipos de Armazenamento\n\nO módulo suporta vários mecanismos de armazenamento:\n\n| Tipo de Armazenamento | Persistência | Escopo | Capacidade |\n|--------------|-------------|-------|----------|\n| Cookies | Persistente | Domínio/Caminho | ~4KB por cookie |\n| localStorage | Persistente | Origem | ~5-10MB |\n| sessionStorage | Sessão | Aba | ~5-10MB |\n| IndexedDB | Persistente | Origem | Grande (GB+) |\n| Cache API | Persistente | Origem | Grande |\n\n!!! warning \"Considerações de Privacidade\"\n    Operações de armazenamento podem afetar a privacidade do usuário. Sempre lide com dados de armazenamento de forma responsável e em conformidade com as regulamentações de privacidade.\n\n<!-- Skill/Rule: Command: /target (docs/pt/api/commands/target.md) -->\n# Comandos de Alvo (Target)\n\nOs comandos de alvo (Target) gerenciam os alvos do navegador, incluindo abas, janelas e outros contextos de navegação.\n\n## Visão Geral\n\nO módulo de comandos de alvo fornece funcionalidade para criar, gerenciar e controlar os alvos do navegador, como abas, janelas pop-up e service workers.\n\n::: pydoll.commands.target_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Uso\n\nOs comandos de alvo são usados internamente pelas classes do navegador para gerenciar abas e janelas:\n\n```python\nfrom pydoll.commands.target_commands import get_targets, create_target, close_target\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Obter todos os alvos do navegador\nconnection = ConnectionHandler()\ntargets = await get_targets(connection)\n\n# Criar uma nova aba\nnew_target = await create_target(connection, url=\"https://example.com\")\n\n# Fechar um alvo\nawait close_target(connection, target_id=new_target.target_id)\n```\n\n## Funcionalidades Principais\n\nO módulo de comandos de alvo fornece funções para:\n\n### Gerenciamento de Alvo\n- `get_targets()` - Listar todos os alvos do navegador\n- `create_target()` - Criar novas abas ou janelas\n- `close_target()` - Fechar alvos específicos\n- `activate_target()` - Trazer alvo para o primeiro plano\n\n### Informações do Alvo\n- `get_target_info()` - Obter informações detalhadas do alvo\n- Tipos de alvo: page, background_page, service_worker, browser\n- Estados do alvo: attached, detached, crashed\n\n### Gerenciamento de Sessão\n- `attach_to_target()` - Anexar a um alvo para controle\n- `detach_from_target()` - Desanexar de um alvo\n- `send_message_to_target()` - Enviar comandos para alvos\n\n### Contexto do Navegador\n- `create_browser_context()` - Criar contexto de navegador isolado\n- `dispose_browser_context()` - Remover contexto de navegador\n- `get_browser_contexts()` - Listar contextos de navegador\n\n## Tipos de Alvos\n\nDiferentes tipos de alvos podem ser gerenciados:\n\n### Alvos de Página\n```python\n# Criar uma nova aba\npage_target = await create_target(\n    connection,\n    url=\"https://example.com\",\n    width=1920,\n    height=1080,\n    browser_context_id=None  # Contexto padrão\n)\n```\n\n### Janelas Pop-up\n```python\n# Criar uma janela pop-up\npopup_target = await create_target(\n    connection,\n    url=\"https://popup.example.com\",\n    width=800,\n    height=600,\n    new_window=True\n)\n```\n\n### Contextos Anônimos (Incognito)\n```python\n# Criar contexto de navegador anônimo\nincognito_context = await create_browser_context(connection)\n\n# Criar aba no contexto anônimo\nincognito_tab = await create_target(\n    connection,\n    url=\"https://private.example.com\",\n    browser_context_id=incognito_context.browser_context_id\n)\n```\n\n!!! info \"Headless vs Headed: como os contextos se manifestam\"\n    Contextos de navegador são ambientes lógicos isolados. No modo **headed** (com interface gráfica), a primeira página criada dentro de um novo contexto geralmente abrirá em uma nova janela do SO. No modo **headless** (sem interface gráfica), nenhuma janela é mostrada — o isolamento permanece puramente lógico (cookies, armazenamento, cache e estado de autenticação ainda são separados por contexto). Prefira contextos em pipelines headless/CI para performance e isolamento limpo.\n\n## Recursos Avançados\n\n### Eventos de Alvo\nOs comandos de alvo funcionam com vários eventos de alvo:\n- `Target.targetCreated` - Novo alvo criado\n- `Target.targetDestroyed` - Alvo fechado\n- `Target.targetInfoChanged` - Informações do alvo atualizadas\n- `Target.targetCrashed` - Alvo falhou (crashed)\n\n### Coordenação Multi-Alvo\n```python\n# Gerenciar múltiplas abas\ntargets = await get_targets(connection)\npage_targets = [t for t in targets if t.type == \"page\"]\n\nfor target in page_targets:\n    # Realizar operações em cada aba\n    await activate_target(connection, target_id=target.target_id)\n    # ... fazer o trabalho nesta aba\n```\n\n### Isolamento de Alvo\n```python\n# Criar contexto de navegador isolado para testes\ntest_context = await create_browser_context(connection)\n\n# Todos os alvos neste contexto estão isolados\ntest_tab1 = await create_target(\n    connection, \n    url=\"https://test1.com\",\n    browser_context_id=test_context.browser_context_id\n)\n\ntest_tab2 = await create_target(\n    connection,\n    url=\"https://test2.com\", \n    browser_context_id=test_context.browser_context_id\n)\n```\n\n!!! note \"Integração com o Navegador\"\n    Os comandos de alvo são usados principalmente internamente pelas classes de navegador `Chrome` e `Edge`. As APIs de navegador de alto nível fornecem métodos mais convenientes para o gerenciamento de abas.\n\n<!-- Skill/Rule: Command: /browser (docs/zh/api/commands/browser.md) -->\n# 浏览器命令\n\n浏览器命令提供对浏览器实例及其配置的底层控制。\n\n## 概述\n\n浏览器命令模块处理浏览器级别的操作，例如版本信息、目标管理和浏览器范围的设置。\n\n::: pydoll.commands.browser_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n浏览器命令通常由浏览器类在内部使用，用于管理浏览器实例：\n\n```python\nfrom pydoll.commands.browser_commands import get_version\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get browser version information\nconnection = ConnectionHandler()\nversion_info = await get_version(connection)\n```\n\n## 可用命令\n\n浏览器命令模块提供以下功能：\n\n- 获取浏览器版本和用户代理信息\n- 管理浏览器目标（标签页、窗口）\n- 控制浏览器范围的设置和权限\n- 处理浏览器生命周期事件\n\n!!! note \"Internal Usage\"\n    These commands are primarily used internally by the `Chrome` and `Edge` browser classes. Direct usage is recommended only for advanced scenarios. \n\n<!-- Skill/Rule: Command: /dom (docs/zh/api/commands/dom.md) -->\n# DOM命令\n\nDOM 命令模块提供了与网页文档对象模型交互的全面功能。\n\n## 概述\n\nDOM 命令模块是 Pydoll 中最重要的模块之一，它提供了查找、交互和操作网页上的 HTML 元素所需的所有功能。\n\n::: pydoll.commands.dom_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## Usage\n\nDOM commands are used extensively by the `WebElement` class and element finding methods:\n\n## 用法\n\n`WebElement` 类和元素查找方法广泛使用DOM 命令：\n\n```python\nfrom pydoll.commands.dom_commands import query_selector, get_attributes\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Find element and get its attributes\nconnection = ConnectionHandler()\nnode_id = await query_selector(connection, selector=\"#username\")\nattributes = await get_attributes(connection, node_id=node_id)\n```\n\n## 主要功能\n\nDOM 命令模块提供以下功能：\n\n### 元素定位\n- `query_selector()` - 通过CSS选择器进行元素定位\n- `query_selector_all()` - 通过CSS选择器进行元素定位（查找多个元素）\n- `get_document()` - 获取document的根节点\n\n### 元素交互\n- `click_element()` - 点击元素\n- `focus_element()` - 焦点置于元素\n- `set_attribute_value()` - 设置元素属性\n- `get_attributes()` - 获取元素属性\n\n### 元素信息\n- `get_box_model()` - 获取元素位置和尺寸\n- `describe_node()` - 获取元素详细信息\n- `get_outer_html()` - 获取元素的HTML内容\n\n### DOM 操作\n- `remove_node()` - 从DOM节点中删除元素\n- `set_node_value()` - 设置元素值\n- `request_child_nodes()` - 获取子元素\n\n!!! tip \"High-Level APIs\"\n    While these commands provide powerful low-level access, most users should use the higher-level `WebElement` class methods like `click()`, `type_text()`, and `get_attribute()` which use these commands internally. \n\n<!-- Skill/Rule: Command: /fetch (docs/zh/api/commands/fetch.md) -->\n# Fetch 命令\n\nFetch 命令使用 Fetch API 域提供高级网络请求处理和拦截功能。\n\n## 概述\n\nFetch 命令模块支持复杂的网络请求管理，包括请求修改、响应拦截和身份验证处理。\n\n::: pydoll.commands.fetch_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\nFetch 命令用于高级网络拦截和请求处理：\n\n```python\nfrom pydoll.commands.fetch_commands import enable, request_paused, continue_request\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable fetch domain\nconnection = ConnectionHandler()\nawait enable(connection, patterns=[{\n    \"urlPattern\": \"*\",\n    \"requestStage\": \"Request\"\n}])\n\n# Handle paused requests\nasync def handle_paused_request(request_id, request):\n    # Modify request or continue as-is\n    await continue_request(connection, request_id=request_id)\n```\n\n## 关键功能\n\nfetch 命令模块提供以下功能：\n\n### 请求拦截\n- `enable()` - 激活fetch模式\n- `disable()` - 关闭fetch模式\n- `continue_request()` - 继续请求（放行）\n- `fail_request()` - 返回特定错误请求\n\n### 修改请求\n- 修改请求headers\n- 更改请求 URL\n- 更改请求方法（GET、POST 等）\n- 修改请求body\n\n### 响应处理\n- `fulfill_request()` - 提供自定义响应\n- `get_response_body()` - 获取响应内容\n- 修改响应头\n- 响应状态码控制\n\n### 身份验证\n- `continue_with_auth()` - 处理身份验证挑战\n- 基本身份验证支持\n- 自定义身份验证流程\n\n## 高级功能\n\n### 基于模式的拦截\n\n```python\n# Intercept specific URL patterns\npatterns = [\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"},\n    {\"urlPattern\": \"*.js\", \"requestStage\": \"Response\"},\n    {\"urlPattern\": \"https://example.com/*\", \"requestStage\": \"Request\"}\n]\n\nawait enable(connection, patterns=patterns)\n```\n\n### 请求修改\n```python\n# Modify intercepted requests\nasync def modify_request(request_id, request):\n    # Add authentication header\n    headers = request.headers.copy()\n    headers[\"Authorization\"] = \"Bearer token123\"\n    \n    # Continue with modified headers\n    await continue_request(\n        connection,\n        request_id=request_id,\n        headers=headers\n    )\n```\n\n### 响应模拟\n```python\n# Mock API responses\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers=[\n        {\"name\": \"Content-Type\", \"value\": \"application/json\"},\n        {\"name\": \"Access-Control-Allow-Origin\", \"value\": \"*\"}\n    ],\n    body='{\"status\": \"success\", \"data\": {\"mocked\": true}}'\n)\n```\n\n### 身份验证处理\n```python\n# Handle authentication challenges\nawait continue_with_auth(\n    connection,\n    request_id=request_id,\n    auth_challenge_response={\n        \"response\": \"ProvideCredentials\",\n        \"username\": \"user\",\n        \"password\": \"pass\"\n    }\n)\n```\n\n## 请求阶段\n\nFetch 命令可以在不同阶段拦截请求：\n\n| 阶段 | 描述 | 用例 |\n|-------|-------------|-----------|\n| 请求 | 请求发送前 | 修改标头、URL 和方法 |\n| 响应 | 收到响应后 | 模拟响应，修改内容 |\n\n## 错误处理\n\n```python\n# Fail requests with specific errors\nawait fail_request(\n    connection,\n    request_id=request_id,\n    error_reason=\"ConnectionRefused\"  # or \"AccessDenied\", \"TimedOut\", etc.\n)\n```\n\n## 与网络命令集成\n\nFetch 命令与网络命令协同工作，但提供更精细的控制：\n\n- **网络命令**：更广泛的网络监控和控制\n- **Fetch 命令**：特定的请求/响应拦截和修改\n\n!!! tip \"Performance Considerations\"\n    Fetch interception can impact page loading performance. Use specific URL patterns and disable when not needed to minimize overhead. \n\n<!-- Skill/Rule: Command: /index (docs/zh/api/commands/index.md) -->\n# 命令概述\n\n命令模块提供了与Chrome DevTools协议(CDP)域交互的高级接口。每个命令模块对应一个特定的CDP域，并提供执行各种浏览器操作的方法。\n\n## 可用命令模块\n\n### 浏览器命令\n- **模块**: `browser_commands.py`\n- **用途**: 浏览器级别操作和窗口管理\n- **文档**: [浏览器命令](browser.md)\n\n### DOM命令\n- **模块**: `dom_commands.py`\n- **用途**: DOM树操作和元素操作\n- **文档**: [DOM命令](dom.md)\n\n### 输入命令\n- **模块**: `input_commands.py`\n- **用途**: 输入事件模拟(键盘、鼠标、触摸)\n- **文档**: [输入命令](input.md)\n\n### 网络命令\n- **模块**: `network_commands.py`\n- **用途**: 网络监控和请求拦截\n- **文档**: [网络命令](network.md)\n\n### 页面命令\n- **模块**: `page_commands.py`\n- **用途**: 页面生命周期管理和导航\n- **文档**: [页面命令](page.md)\n\n### 运行时命令\n- **模块**: `runtime_commands.py`\n- **用途**: JavaScript执行和运行时管理\n- **文档**: [运行时命令](runtime.md)\n\n### 存储命令\n- **模块**: `storage_commands.py`\n- **用途**: 浏览器存储访问(cookies、本地存储等)\n- **文档**: [存储命令](storage.md)\n\n### 目标命令\n- **模块**: `target_commands.py`\n- **用途**: 目标管理和标签页操作\n- **文档**: [目标命令](target.md)\n\n### 获取命令\n- **模块**: `fetch_commands.py`\n- **用途**: 网络请求拦截和修改\n- **文档**: [获取命令](fetch.md)\n\n## 使用模式\n\n命令通常通过浏览器或标签页实例访问：\n\n```python\nfrom pydoll.browser.chromium import Chrome\n\n# 初始化浏览器\nbrowser = Chrome()\nawait browser.start()\n\n# 获取活动标签页\ntab = await browser.get_active_tab()\n\n# 通过标签页使用命令\nawait tab.navigate(\"https://example.com\")\nelement = await tab.find(id=\"button\")\nawait element.click()\n```\n\n## 命令结构\n\n每个命令模块遵循一致的模式：\n- **静态方法**: 用于直接命令执行\n- **类型提示**: 使用协议类型的完整类型安全\n- **错误处理**: 对CDP错误的正确异常处理\n- **文档**: 包含示例的全面文档字符串 \n\n<!-- Skill/Rule: Command: /input (docs/zh/api/commands/input.md) -->\n# 输入命令\n\n输入命令处理鼠标和键盘交互，提供真人仿真的输入模拟。\n\n## 概述\n\n输入命令模块提供模拟用户输入的功能，包括鼠标移动、点击、键盘输入和按键操作。\n\n::: pydoll.commands.input_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n输入命令由元素交互方法使用，可直接用于高级输入场景：\n\n```python\nfrom pydoll.commands.input_commands import dispatch_mouse_event, dispatch_key_event\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Simulate mouse click\nconnection = ConnectionHandler()\nawait dispatch_mouse_event(\n    connection, \n    type=\"mousePressed\", \n    x=100, \n    y=200, \n    button=\"left\"\n)\n\n# Simulate keyboard typing\nawait dispatch_key_event(\n    connection,\n    type=\"keyDown\",\n    key=\"Enter\"\n)\n```\n\n## 主要功能\n\n输入命令模块提供以下函数：\n\n### 鼠标事件\n- `dispatch_mouse_event()` - 鼠标点击、移动和滚轮事件\n- 鼠标按键状态（左键、右键、中键）\n- 基于坐标的定位\n- 拖放操作\n\n\n### 键盘事件\n- `dispatch_key_event()` - 键盘按下和释放事件\n- `insert_text()` - 直接插入文本\n- 特殊键处理（Enter、Tab、箭头键等）\n- 修饰键（Ctrl、Alt、Shift）\n\n\n### 触摸事件\n- 触摸屏模拟\n- 多点触控手势\n- 触摸坐标和压力控制\n\n## 仿真行为\n\n输入命令支持仿真行为模式：\n\n- 平滑的鼠标移动曲线\n- 真实的打字速度和模式\n- 操作之间随机的微延迟\n- 压力感应触摸事件\n\n!!! tip \"Element Methods\"\n    For most use cases, use the higher-level element methods like `element.click()` and `element.type_text()` which provide a more convenient API and handle common scenarios automatically. \n\n<!-- Skill/Rule: Command: /network (docs/zh/api/commands/network.md) -->\n# 网络命令\n\n网络命令提供对网络请求、响应和浏览器网络行为的全面控制。\n\n## 概述\n\n网络命令模块支持请求拦截、响应修改、Cookie 管理和网络监控功能。\n\n::: pydoll.commands.network_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n网络命令用于请求拦截和网络监控等高级场景：\n\n```python\nfrom pydoll.commands.network_commands import enable, set_request_interception\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable network monitoring\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Enable request interception\nawait set_request_interception(connection, patterns=[{\"urlPattern\": \"*\"}])\n```\n\n## 主要功能\n\n网络命令模块提供以下功能：\n\n\n### 请求管理\n- `enable()` / `disable()` - 启用/禁用网络监控\n- `set_request_interception()` - 拦截并修改请求\n- `continue_intercepted_request()` - 继续或修改拦截的请求\n- `get_request_post_data()` - 获取请求体数据\n\n\n### 响应处理\n- `get_response_body()` - 获取响应内容\n- `fulfill_request()` - 提供自定义响应\n- `fail_request()` - 模拟网络异常\n\n### Cookie 管理\n- `get_cookies()` - 获取浏览器 Cookie\n- `set_cookies()` - 设置浏览器 Cookie\n- `delete_cookies()` - 删除指定 Cookie\n- `clear_browser_cookies()` - 清除所有 Cookie\n\n### 缓存控制\n- `clear_browser_cache()` - 清除浏览器缓存\n- `set_cache_disabled()` - 禁用浏览器缓存\n- `get_response_body_for_interception()` - 获取缓存的响应\n\n### 安全和标头\n- `set_user_agent_override()` - 覆盖用户代理\n- `set_extra_http_headers()` - 添加自定义标头\n- `emulate_network_conditions()` - 模拟网络连接状况\n\n## 高级用例\n\n### 请求拦截\n\n```python\n# 拦截修改请求\nawait set_request_interception(connection, patterns=[\n    {\"urlPattern\": \"*/api/*\", \"requestStage\": \"Request\"}\n])\n\n# 拦截请求处理\nasync def handle_request(request):\n    if \"api/login\" in request.url:\n        # 修改请求头\n        headers = request.headers.copy()\n        headers[\"Authorization\"] = \"Bearer token\"\n        await continue_intercepted_request(\n            connection, \n            request_id=request.request_id,\n            headers=headers\n        )\n```\n\n### 响应模拟\n```python\n# 模拟 API 响应\nawait fulfill_request(\n    connection,\n    request_id=request_id,\n    response_code=200,\n    response_headers={\"Content-Type\": \"application/json\"},\n    body='{\"status\": \"success\"}'\n)\n```\n\n!!! warning \"Performance Impact\"\n    Network interception can impact page loading performance. Use selectively and disable when not needed. \n\n<!-- Skill/Rule: Command: /page (docs/zh/api/commands/page.md) -->\n# 页面命令\n\n页面命令处理页面导航、生命周期事件和页面操作。\n\n## 概述\n\n页面命令模块提供页面间导航、管理页面生命周期、处理 JavaScript 执行以及控制页面行为的功能。\n\n::: pydoll.commands.page_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n“Tab”类广泛使用页面命令进行导航和页面管理：\n\n```python\nfrom pydoll.commands.page_commands import navigate, reload, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Navigate to a URL\nconnection = ConnectionHandler()\nawait enable(connection)  # Enable page events\nawait navigate(connection, url=\"https://example.com\")\n\n# Reload the page\nawait reload(connection)\n```\n\n## 关键功能\n\n页面命令模块提供以下函数：\n\n### 导航\n- `navigate()` - 访问URL\n- `reload()` - 重新加载当前页面\n- `go_back()` - 后退一步\n- `go_forward()` - 前进一步\n- `stop_loading()` - 停止页面加载\n\n### 页面生命周期\n- `enable()` / `disable()` - 启用/禁用页面事件\n- `get_frame_tree()` - 获取页面框架结构\n- `get_navigation_history()` - 获取导航历史记录\n\n### 内容管理\n- `get_resource_content()` - 获取页面资源内容\n- `search_in_resource()` - 在页面资源内搜索\n- `set_document_content()` - 设置页面 HTML 内容\n\n### 截图和 PDF\n- `capture_screenshot()` - 页面截图\n- `print_to_pdf()` - 将页面保存为PDF\n- `capture_snapshot()` - 页面快照\n\n### JavaScript 执行\n- `add_script_to_evaluate_on_new_document()` - 添加启动脚本(在网页加载前注入js)\n- `remove_script_to_evaluate_on_new_document()` - 移除启动脚本\n\n### 页面设置\n- `set_lifecycle_events_enabled()` - 控制生命周期事件\n- `set_ad_blocking_enabled()` - 启用/禁用广告拦截\n- `set_bypass_csp()` - 绕过内容安全策略\n\n## 高级功能\n### 框架管理\n\n```python\n# Get all frames in the page\nframe_tree = await get_frame_tree(connection)\nfor frame in frame_tree.child_frames:\n    print(f\"Frame: {frame.frame.url}\")\n```\n\n### 资源拦截\n```python\n# Get resource content\ncontent = await get_resource_content(\n    connection, \n    frame_id=frame_id, \n    url=\"https://example.com/script.js\"\n)\n```\n\n### 页面事件\n页面命令可与各种页面事件配合使用：\n- `Page.loadEventFired` - 页面加载完成\n- `Page.domContentEventFired` - DOM 内容已加载\n- `Page.frameNavigated` - 框架访问结束\n- `Page.frameStartedLoading` - 框架加载开始\n\n\n!!! 小提示“Tab 类集成”\n大多数页面操作都可以通过 `Tab` 类方法实现，例如 `tab.go_to()`、`tab.reload()` 和 `tab.screenshot()`，这些方法提供了更便捷的 API。\n\n<!-- Skill/Rule: Command: /runtime (docs/zh/api/commands/runtime.md) -->\n# 运行时命令\n\n运行时命令提供 JavaScript 执行功能和运行时环境管理。\n\n## 概述\n\n运行时命令模块支持在浏览器上下文中执行 JavaScript 代码、检查对象以及控制运行时环境。\n\n::: pydoll.commands.runtime_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n运行时命令用于 JavaScript 执行和运行时管理：\n\n```python\nfrom pydoll.commands.runtime_commands import evaluate, enable\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Enable runtime events\nconnection = ConnectionHandler()\nawait enable(connection)\n\n# Execute JavaScript\nresult = await evaluate(\n    connection, \n    expression=\"document.title\",\n    return_by_value=True\n)\nprint(result.value)  # Page title\n```\n\n## 主要功能\n\n运行时命令模块提供以下功能：\n\n### JavaScript 执行\n- `evaluate()` - 执行 JavaScript 表达式\n- `call_function_on()` - 调用对象上的函数\n- `compile_script()` - 编译 JavaScript 以供复用\n- `run_script()` - 运行已编译的脚本\n\n### 对象管理\n- `get_properties()` - 获取对象属性\n- `release_object()` - 释放对象引用\n- `release_object_group()` - 释放对象组\n\n### 运行时控制\n- `enable()` / `disable()` - 启用/禁用运行时事件\n- `discard_console_entries()` - 清除控制台记录\n- `set_custom_object_formatter_enabled()` - 启用自定义格式化程序\n\n### 异常处理\n- `set_async_call_stack_depth()` - 设置调用堆栈深度\n- 异常捕获和报告\n- 错误对象检查\n\n## 高级用法\n\n### 复杂的 JavaScript 执行\n\n```python\n# 执行带有错误处理的复杂 JavaScript\nscript = \"\"\"\ntry {\n    const elements = document.querySelectorAll('.item');\n    return Array.from(elements).map(el => ({\n        text: el.textContent,\n        href: el.href\n    }));\n} catch (error) {\n    return { error: error.message };\n}\n\"\"\"\n\nresult = await evaluate(\n    connection,\n    expression=script,\n    return_by_value=True,\n    await_promise=True\n)\n```\n\n### 对象检查\n```python\n# Get detailed object properties\nproperties = await get_properties(\n    connection,\n    object_id=object_id,\n    own_properties=True,\n    accessor_properties_only=False\n)\n\nfor prop in properties:\n    print(f\"{prop.name}: {prop.value}\")\n```\n\n### 控制台集成\n运行时命令与浏览器控制台集成：\n- 控制台消息和错误\n- 控制台 API 方法调用\n- 自定义控制台格式化程序\n\n!!! note \"Performance Considerations\"\n    JavaScript execution through runtime commands can be slower than native browser execution. Use judiciously for complex operations. \n\n<!-- Skill/Rule: Command: /storage (docs/zh/api/commands/storage.md) -->\n# 存储命令\n\n存储命令提供全面的浏览器存储管理，包括 Cookie、localStorage、sessionStorage 和 IndexedDB。\n\n## 概述\n\n存储命令模块支持管理所有浏览器存储机制，提供数据持久化和检索功能。\n\n::: pydoll.commands.storage_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\n存储命令用于跨不同机制管理浏览器存储：\n\n```python\nfrom pydoll.commands.storage_commands import get_cookies, set_cookies, clear_data_for_origin\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get cookies for a domain\nconnection = ConnectionHandler()\ncookies = await get_cookies(connection, urls=[\"https://example.com\"])\n\n# Set a new cookie\nawait set_cookies(connection, cookies=[{\n    \"name\": \"session_id\",\n    \"value\": \"abc123\",\n    \"domain\": \"example.com\",\n    \"path\": \"/\",\n    \"httpOnly\": True,\n    \"secure\": True\n}])\n\n# Clear all storage for an origin\nawait clear_data_for_origin(\n    connection,\n    origin=\"https://example.com\",\n    storage_types=\"all\"\n)\n```\n\n## 关键功能\n\n存储命令模块提供以下函数：\n\n### Cookie 管理\n- `get_cookies()` - 通过 URL 或域名获取 Cookie\n- `set_cookies()` - 设置新 Cookie\n- `delete_cookies()` - 删除特定 Cookie\n- `clear_cookies()` - 清除所有 Cookie\n\n\n### 本地存储\n- `get_dom_storage_items()` - 获取localStorage\n- `set_dom_storage_item()` - 设置localStorage\n- `remove_dom_storage_item()` - 移除localStorage\n- `clear_dom_storage()` - 清除localStorage\n\n### 会话存储\n- 会话存储操作（类似于本地存储）\n- 特定会话的数据管理\n- 选项卡隔离存储\n\n### IndexedDB\n- `get_database_names()` - 获取 IndexedDB 数据库\n- `request_database()` - 访问数据库结构\n- `request_data()` - 查询数据库数据\n- `clear_object_store()` - 清除对象存储\n\n### 缓存存储\n- `request_cache_names()` - 获取缓存名称\n- `request_cached_response()` - 获取缓存响应\n- `delete_cache()` - 删除缓存条目\n\n### 应用程序缓存（已弃用）\n- 支持旧版应用程序缓存\n- 基于清单的缓存\n\n## 高级功能\n\n### 批量操作\n```python\n# Clear all storage types for multiple origins\norigins = [\"https://example.com\", \"https://api.example.com\"]\nfor origin in origins:\n    await clear_data_for_origin(\n        connection,\n        origin=origin,\n        storage_types=\"cookies,local_storage,session_storage,indexeddb\"\n    )\n```\n\n### 存储配额\n```python\n# Get storage quota information\nquota_info = await get_usage_and_quota(connection, origin=\"https://example.com\")\nprint(f\"Used: {quota_info.usage} bytes\")\nprint(f\"Quota: {quota_info.quota} bytes\")\n```\n\n### Cross-Origin 存储\n```python\n# Manage storage across different origins\nawait set_cookies(connection, cookies=[{\n    \"name\": \"cross_site_token\",\n    \"value\": \"token123\",\n    \"domain\": \".example.com\",  # Applies to all subdomains\n    \"sameSite\": \"None\",\n    \"secure\": True\n}])\n```\n\n## 存储类型\n\n该模块支持多种存储机制：\n\n| 存储类型 | 持久性 | 范围 | 容量 |\n|-----------|----------|----------|----------|\n| Cookies | 持久性 | 域/路径 | 每个 cookie 约 4KB |\n| localStorage | 持久性 | 来源 | 约 5-10MB |\n| sessionStorage | 会话 | Tab | 约 5-10MB |\n| IndexedDB | 持久性 | 来源 | 大容量 (GB+) |\n| Cache API | 持久性 | 来源 | 大容量 |\n\n!!! warning \"Privacy Considerations\"\n    Storage operations can affect user privacy. Always handle storage data responsibly and in compliance with privacy regulations. \n\n<!-- Skill/Rule: Command: /target (docs/zh/api/commands/target.md) -->\n# Target命令\n\nTarget命令管理浏览器目标，包括标签页、窗口和其他浏览上下文。\n\n## 概述\n\nTarget命令模块提供创建、管理和控制浏览器目标（例如标签页、弹出窗口和服务工作线程）的功能。\n\n::: pydoll.commands.target_commands\n    options:\n      show_root_heading: true\n      show_source: false\n      heading_level: 2\n      filters:\n        - \"!^_\"\n        - \"!^__\"\n\n## 用法\n\nTarget命令由浏览器类内部使用，用于管理标签页和窗口：\n\n```python\nfrom pydoll.commands.target_commands import get_targets, create_target, close_target\nfrom pydoll.connection.connection_handler import ConnectionHandler\n\n# Get all browser targets\nconnection = ConnectionHandler()\ntargets = await get_targets(connection)\n\n# Create a new tab\nnew_target = await create_target(connection, url=\"https://example.com\")\n\n# Close a target\nawait close_target(connection, target_id=new_target.target_id)\n```\n\n## 主要功能\n\nTarget命令模块提供以下功能：\n\n\n### Target管理\n- `get_targets()` - 列出所有浏览器Target\n- `create_target()` - 创建新的标签页或窗口\n- `close_target()` - 关闭特定Target\n- `activate_target()` - 将Target置于前台\n\n### Target 信息\n- `get_target_info()` - 获取详细的Target信息\n- Target类型：页面、background_page、service_worker、浏览器\n- Target状态：已连接、已分离、崩溃\n\n### Session 管理\n- `attach_to_target()` - 附加到Target进行控制\n- `detach_from_target()` - 分离Target\n- `send_message_to_target()` - 向Target发送命令\n\n### 浏览器上下文\n- `create_browser_context()` - 创建独立的浏览器上下文\n- `dispose_browser_context()` - 移除浏览器上下文\n- `get_browser_contexts()` - 列出浏览器上下文\n\n## 目标类型\n\n可以管理不同类型的目标：\n\n### 页面 Targets\n```python\n# Create a new tab\npage_target = await create_target(\n    connection,\n    url=\"https://example.com\",\n    width=1920,\n    height=1080,\n    browser_context_id=None  # Default context\n)\n```\n\n### 弹窗\n```python\n# Create a popup window\npopup_target = await create_target(\n    connection,\n    url=\"https://popup.example.com\",\n    width=800,\n    height=600,\n    new_window=True\n)\n```\n\n### 无痕上下文\n```python\n# Create incognito browser context\nincognito_context = await create_browser_context(connection)\n\n# Create tab in incognito context\nincognito_tab = await create_target(\n    connection,\n    url=\"https://private.example.com\",\n    browser_context_id=incognito_context.browser_context_id\n)\n```\n\n!!! info \"Headless 与 Headed：上下文如何呈现\"\n    浏览器上下文是逻辑上的隔离环境。在 Headed 模式下，在新的上下文中创建的第一个页面通常会打开一个新的系统窗口。 在 Headless 模式下不会显示窗口——隔离依然存在于后台（cookies、storage、缓存与认证状态仍按上下文分离）。在 CI/Headless 环境中优先使用上下文以获得更高性能与更干净的隔离。\n\n## 高级特性\n\n### 目标事件\nTarget命令可与各种Target事件配合使用：\n- `Target.targetCreated` - 新Target创建\n- `Target.targetDestroyed` - Target关闭\n- `Target.targetInfoChanged` - Target信息更新\n- `Target.targetCrashed` - Target崩溃\n\n### 多Target协调\n\n```python\n# Manage multiple tabs\ntargets = await get_targets(connection)\npage_targets = [t for t in targets if t.type == \"page\"]\n\nfor target in page_targets:\n    # Perform operations on each tab\n    await activate_target(connection, target_id=target.target_id)\n    # ... do work in this tab\n```\n\n### Target 隔离\n```python\n# Create isolated browser context for testing\ntest_context = await create_browser_context(connection)\n\n# All targets in this context are isolated\ntest_tab1 = await create_target(\n    connection, \n    url=\"https://test1.com\",\n    browser_context_id=test_context.browser_context_id\n)\n\ntest_tab2 = await create_target(\n    connection,\n    url=\"https://test2.com\", \n    browser_context_id=test_context.browser_context_id\n)\n```\n\n!!! note \"Browser Integration\"\n    Target commands are primarily used internally by the `Chrome` and `Edge` browser classes. The high-level browser APIs provide more convenient methods for tab management. \n\n</agent_rules>"}