- cloudflare: improve checkbox click logic for faster failure handling
- cloudflare: update checkbox selector and improve bypass logic
- nested iframes
- mouse: keep debug overlay visible across page navigations
- enhance connection resilience and event handling in ConnectionHandler and managers
- implement User-Agent override propagation to worker contexts
- avoid shared mutable default for WebElement attributes_list
- inject connection handler and managers for testability
- requests: surface JavaScript fetch errors with descriptive messages
- requests: surface JavaScript fetch errors with descriptive messages
- requests: surface JavaScript fetch errors with descriptive messages
- requests: surface JavaScript fetch errors with descriptive messages
- test: await canceled receiver task to avoid pending-task leaks
- add humanize to WebElement.click
- update broken webelement-domain link in element-finding.md
- update broken deep-dive links in core-concepts.md
- extractor: integrate extract and extract_all into Tab
- extractor: add module public API exports
- extractor: add extraction engine with CSS/XPath support
- extractor: add ExtractionModel base class
- extractor: add Field descriptor and ExtractionMetadata
- extractor: add extraction exception hierarchy
- add pydantic as required dependency
- add missing CDP enum values for AXPropertyName
- add missing enum values for AXPropertyName
- impl accesiblity domain
- test: filter only DeprecationWarning in interval deprecated test
- extractor: correct coroutine type annotation for mypy
- extractor: resolve mypy type errors
- detect navigation errors on same-URL refresh in go_to
- use NavigateResponse type instead of dict with type ignore
- add type annotation to satisfy mypy var-annotated check
- add type annotation for navigate response
- raise NavigationError when go_to fails
- extractor: parallelize list field extraction with asyncio.gather
- extractor: use asyncio.gather for concurrent field extraction
- test: improve OOPIF integration test reliability
- iframe: resolve nested OOPIF iframes inside shadow roots
- release commit
- keyboard: send correct key, code and keycode in type_text
- elements: fix humanized interactions inside iframes
- humanized scroll overshoot correction causes infinite loop
- interactions: change humanize default from True to False
- elements: forward humanize flag to click in type_text
- command: increase default command timeout from 10s to 60s across multiple components
- tab: remove temporary flag to avoid duplicate callback removal
- tab: replace readyState polling with CDP events in navigation
- mouse: add timing property for runtime configuration
- requests: add record() and replay() to Request class
- requests: add HAR network recorder
- protocol: add HAR 1.2 type definitions
- requests: use surgical callback removal instead of nuclear clear_callbacks
- tab: extract bundle static methods to utils module
- interactions: default humanize=True for keyboard type_text
- elements: integrate Mouse API into WebElement.click()
- interactions: add Mouse API with humanized simulation
- browser: add webrtc_leak_protection property to ChromiumOptions
- browser: add automatic User-Agent consistency override
- utils: harden SOCKS5 proxy forwarder security and robustness
- utils: add SOCKS5 proxy forwarder and convert utils to package
- elements: add cross-iframe selector support for XPath and CSS
- tab: refactor cloudflare bypass to use shadow root traversal
- elements: add shadow root timeout, CSS restriction and context propagation
- tab: add find_shadow_roots with OOPIF traversal and timeout
- elements: add shadow DOM support
- docs: replace shadow.find() with query() in all documentation
- tests: replace shadow.find() with query() in integration tests
- elements: use float timeout and add contextual WaitElementTimeout messages
- add clear method for input and enhance page load state handling
- browser: support secure websocket connections
- filter Symbol properties from element query results
- Implement incognito mode cookie retrieval for
tab.get_cookies()and update related documentation
- inconsistence in type checking
- Dispatch
KEY_DOWNandKEY_UPevents for character typing
- get_tab_by_target method added
- get_tab_by_target method added
- adding type: ignore in JavascriptDialogOpeningEvent object
- adding type: ignore in JavascriptDialogOpeningEvent object
- add stuck scroll detection and minimum flick distance to humanized scroll, and correct scroll distance calculation.
- Implement humanized keyboard typing and physics-based scroll, and add iframe interaction support.
- optimize iframe resolution logic by adjusting backend node ID checks and enhancing child frame handling
- refine OOPIF resolution and frame attachment logic for improved handling of backend node IDs
- enhance OOPIF target attachment logic for improved session handling
- improve frame retrieval logic for better session handling
- adjust find_elements_mixin.py to refine return types and defaults
- continue cleanup process if temporary directory still exists
- adjust sleep duration for Windows and enhance temp dir cleanup
- enhance error handling for locked files on Windows systems
- remove unnecessary retry_times parameter in file processing
- ensure temp directory cleanup handles Chromium locked files
- enhance element selection and text extraction for better stability
- handle oopif targets
- change way to interact with iframes
- refactor iframe context handling in FindElementsMixin class
- update Chrome options for better memory management and stability
- execute_script: validate element argument usage
- tab,element,chrome: revert arguments and add Chromium paths
- add a retry decorator for handling function execution failures
- import TopLevelTargetRequired in test_browser_tab.py
- allow one additional retry attempt in the retry decorator
- tab,element: simplify execute_script parameters
- element: move and enhance execute_script from tab
- tab: separate execute_script concerns and enhance with comprehensive options
- add input handling functions and key constants for editing
- add KeyboardAPI for simulating keyboard input actions
- add KeyboardAPI integration for enhanced keyboard control
- enhance text insertion and deprecate legacy key methods
- add ScrollAPI for enhanced page scrolling capabilities
- keep take_screenshot consistent
- refactor type hints for better clarity and future compatibility
- update process creation to capture output and clean proxy format
- preserve query and fragment in WebSocket URL for tabs
- remove debug logging for request status and network events
- refactor logger messages to use consistent single quotes
- fix merge conflicts
- add logging for browser lifecycle and context management events
- refactor proxy parsing logic for improved clarity and efficiency
- change download event handling to use PageEvent instead of BrowserEvent
- use early return in setup proxy method
- add configurable page load state
- implement proxy authentication handling for browser tabs
- map exception when try to take screenshot of an iframe
- store the opened tab in the _tabs_opened dictionary
- elements: correctly detect parenthesized XPath expressions
- simplify FindElementsMixin._get_expression_type startswith checks into single tuple
- adding get_siblings_elements method
- adding get_children_elements method
- refactor Tab class to support optional WebSocket address handling
- add WebSocket connection support for existing browser instances
- add optional WebSocket address support in connection handler
- add get siblings and get childen methods a raise_exc option
- improving children and parent retrive docstring and creating a private generic method for then
- using new execute_script public method
- solving conflicts
- rename pages fixtures files and adding a error test
- refactor Tab class to improve initialization and error handling
- refactor Browser class to manage opened tabs and WebSocket setup
- add new exception classes for connection and WebSocket errors
- refactor WebElement methods to use a unified naming convention
- add Response type and new bring_to_front method to Tab class
- improve element interactability scripts
- browser: add google-chrome-stable path for Arch Linux AUR package
- run actions to fix badges
- enforce combined condition logic in wait_until
- web_element: raise WaitElementTimeout on wait_until timeout
- update command responses to use Response for empty responses
- webelement: simplify wait_until condition mapping
- add DownloadTimeout exception for file download timeouts
- add context manager for handling file downloads in Tab class
- add type checking for connection handler in mixin class
- add type overloads for event callback in Browser class
- add HTTP client functionality using the browser's fetch API
- add HTTP response object for browser-based fetch requests
- implement Request class for HTTP requests using fetch API
- add Request handling and improve network log retrieval methods
- reject cookies with empty names during parsing in Request class
- refactor imports to include NotRequired and TypedDict from typing_extensions
- update imports to use typing_extensions for compatibility reasons
- check for None in events_enabled before updating params
- remove unused event type aliases and clean up imports
- depreciating headless argument in start method and adding it in to browser options properties
- add asynchronous function for makeRequest in JavaScript
- refactor imports for cleaner organization and improved clarity
- refactor type hints in FindElementsMixin for clarity and type safety
- refactor type hints and improve command method signatures
- refactor event handling to use specific event types for clarity
- refactor connection handler to use CDPEvent and typed commands
- refactor storage command methods to return specific command types
- refactor target command methods to use specific command types
- refactor command return types to specific command classes
- refactor page commands to use specific command types directly
- refactor network commands to use specific command types
- refactor input command methods to return specific command types
- refactor fetch_commands to use updated type definitions
- refactor enums to inherit from str for better compatibility
- refactor DOM command types for improved code clarity and structure
- refactor command and event parameter types for better typing
- refactor command responses to use EmptyResponse where applicable
- improve protocol types for target domain
- improve protocol types for storage domain
- refactor command response types for improved readability and consistency
- improve protocol types for page domain
- add IncludeWhitespace and RelationType enums to DOM types
- improve protocol types for input domain
- refactor AuthChallengeResponse and remove legacy definitions
- remove legacy WindowBoundsDict for cleaner type definitions
- add new TypedDicts and enums for runtime event parameters
- refactor DOM event types and methods for better clarity and structure
- refactor fetch command return types for better clarity and structure
- enhance browser command functionality with new methods and types
- add TypedDict and Enum definitions for emulation and debugging
- improve protocol types for network domain
- changing bool prefs to properties and adding support to user-data-dir preferences
- adding prefs options customization
- add overloads for find and query methods in FindElementsMixin
- add method to retrieve parent element and its attributes
- implements start_timeout option
- adding typehint and fixing some codes
- removing options preferences private attributes
- set default URL to 'about:blank' in create_target method
- change navigation when creating a new tab
- add type hinting support and update project description
- remove redundant asterisk from find method overloads and reorganize query method overloads
- refine type hint for response parameter and improve key check
- refactor click_option_tag to use direct script reference
- update script to use closest for more reliable DOM selection
- improve selection script for higher accuracy
- use correct class name and id selector in query()
- add fetch command methods to handle request processing
- change body type from dict to string in fetch command parameters
- refactor continue_request and fulfill_request to use options
- enhance continue_request and fulfill_request with new options
- connection: Upgrade adapt websockets version to 14.0
- refine selector condition to include attributes check
- fix contextmanager for file upload
- fix call_function_on parameters order
- replace BeautifulSoup with custom HTML text extractor
- fix call parameters order in call_function_on method
- add method to retrieve non-extension opened tabs as Tab instances
- refactor attribute assignments to include type annotations
- implement singleton pattern for Tab instances by target_id
- add new script-related exception classes for better handling
- add functions to clean scripts and check return statements
- add methods to retrieve network response body and logs
- click in the input before typing and fix documentation
- add overloads for execute_script to improve type safety
- fix private proxy configuration
- pydoll v2 finished
- intuitive way to interact with iframes
- refactor Keys class to Key and add utility methods for enums
- add Event TypedDict for standardized event structure
- add TargetEvent enum for Chrome DevTools Protocol events
- add StorageEvent enumeration for Chrome DevTools Protocol events
- add RuntimeEvent enumeration for Chrome DevTools Protocol events
- add PageEvent enumeration for Chrome DevTools Protocol events
- add NetworkEvent enumeration for Chrome DevTools Protocol events
- add InputEvent enum for Chrome DevTools input events
- add FetchEvent enumeration for Chrome DevTools Protocol events
- add DomEvent enumeration for Chrome DevTools Protocol events
- add BrowserEvent enum for Chrome DevTools protocol events
- add methods to enable and disable the runtime domain commands
- add new enums for whitespace, axes, pseudo types, and modes
- add DOM response types and corresponding response classes
- add DOM command types and parameter definitions for pydoll
- add enums for key, mouse, touch, and drag event types
- add input command types for touch, mouse, and keyboard events
- enhance TargetCommands class with new methods for targets management
- add TypedDicts for target response types and browser contexts
- add TypedDict definitions for target command parameters
- add storage-related enumerations for bucket durability and types
- enhance StorageCommands with new methods for data management
- add storage response types and related classes for handling data
- add storage command types using TypedDict for structured params
- add new enumeration classes for serialization and object types
- add runtime response types for handling various object previews
- add initial runtime command types for protocol handling
- add constants for various encoding, formats, and policies
- add TypedDict definitions for page response types and results
- add typed dictionaries for various page command parameters
- add new command parameter classes for network resource handling
- add TypedDict definitions for network response types
- organize command types into structured imports and exports
- add network command types and parameters for cookie management
- add enums for cookie priorities, connection types, and encodings
- add response classes for browser window target retrieval
- setup mkdocs and install related packages
- add async text property for retrieving element text
- remove target directory from .gitignore file
- fix typo in USB_UNRESTRICTED constant for consistency
- add new network command parameters and methods for cookies
- change postData type from dict to string in ContinueRequestParams
- refactor screenshot path handling and enhance error checking
- refactor type hints from List to built-in list for consistency
- refine XPath condition handling and ensure integer coordinates
- refactor condition checks to ensure against None values
- refactor exception handling and add browser path validation function
- rename BrowserOptionsManager to ChromiumOptionsManager
- refactor Edge class to use ChromiumOptionsManager and simplify path validation
- refactor Chrome class to use Chromium-specific options manager
- refactor Browser class to use options manager and improve methods
- refactor Options class to ChromiumOptions and use type hints
- refactor to create ChromiumOptionsManager for better clarity
- add abstract base classes for browser options management
- use
message.get('id')for safer ID checks in response - refactor message handling to support multiple message types
- refactor element finding methods for enhanced flexibility and clarity
- rename method for better clarity in captcha element handling
- refactor type hints for event callback parameters and options
- simplify ping call by inlining WebSocketClientProtocol cast
- refactor EventsManager to use typed Event objects consistently
- add runtime events management to the Tab class functionality
- update event callback signatures for better type handling
- remove unused import of Response in runtime_commands.py
- add Response import to page_commands for improved functionality
- refactor response classes to use TypedDict for better typing
- refactor WebElement class to organize exception imports clearly
- refactor exception handling in FindElementsMixin class
- refactor exception handling to use custom timeout and connection errors
- remove unused import statements in events_manager.py
- refactor error handling to use specific exceptions for clarity
- refactor error handling to use custom exception for arguments
- fix PermissionError raising in TempDirectoryManager class
- refactor error handling to use specific exceptions for clarity
- handle unsupported OS with a custom exception in Edge class
- raise UnsupportedOS exception for unsupported operating systems
- refactor browser error handling and improve method return types
- refactor exception classes to improve organization and clarity
- refactor element finding methods to use updated command structure
- refactor WebElement class for improved structure and clarity
- refactor import statements and clean up code formatting
- refactor command imports and enhance download behavior method
- refactor Tab import and update FetchCommands method calls
- refactor ConnectionHandler docstrings for clarity and conciseness
- refactor command and event managers for improved type safety
- refactor ConnectionHandler to improve WebSocket management and clarity
- add Tab class for managing browser tabs via CDP integration
- enhance TempDirectoryManager with detailed docstrings and type hints
- refactor ProxyManager to enhance proxy credential handling
- refactor Browser class to enhance automation capabilities and structure
- move commands to a different module
- define base structures for commands and responses in protocol
- import Rect from dom_commands_types for response handling
- refactor cookie-related types for improved clarity and consistency
- remove unnecessary whitespace in docstring of InputCommands class
- refactor DOM commands to improve structure and add functionality
- refactor InputCommands to enhance user input simulation methods
- add CookieParam TypedDict to define cookie attributes
- add new runtime command methods for JavaScript bindings and promises
- remove unused method to clear accepted encodings in network commands
- update ResetPermissionsParams to use NotRequired for context ID
- refactor PageCommands to improve structure and add type hints
- simplify import statements by using wildcard imports for responses
- add new response types and update existing response classes
- consolidate command imports using wildcard imports for clarity
- correct post_data type from dict to str in FetchCommands class
- refactor NetworkCommands to use structured command parameters
- refactor fetch command methods to use static methods directly
- refactor BrowserCommands to use static methods and improve clarity
- refactor response imports and update all definitions
- refactor import statements for better readability and structure
- refactor import statements for consistency in response types
- refactor import and rename EnableParams to FetchEnableParams
- refactor import statement for CommandParams module path
- refactor fetch command templates to use Command class
- add enums for window states, download behaviors, and permissions
- remove unused enum imports and rename base_types module
- refactor command structures for better organization and clarity
- rename command and response modules for better clarity
- refactor imports for better organization and readability
- add browser command methods for version, permissions, and downloads
- add command and response types for protocol implementation
- refactor execute_command to use type annotations for clarity
- refactor command methods to specify response types in BrowserCommands
- refactor command structures and introduce base CommandParams class
- refactor browser command constants to use Command class type
- refactor connection imports and rename manager files for clarity
- refactor BrowserType import to a common constants module
- refactor browser modules to use the new chromium structure
- refactor element imports and remove deprecated element file
- refactor import paths to use the protocol submodule structure
- move command files to the protocol directory for better structure
- rename insert_text to paste_text and remove unused files
- refactor the
InputCommandsclass to enhance clarity and simplicity in its operations - add deprecation warning to get_element_text()
- refactor captcha handling with adjustable wait times and parameters
- add connect method to handle existing port scenarios
- create enable_auto_solve_cloudflare_captcha method
- add context manager to bypass Cloudflare Turnstile captcha
- handle headers input as list or dictionary in fetch command
- add flag to run browser on headless mode on start function
- Wait for the file
CrashpadMetrics-active.pmato be deoccupied and cleaned up - Catch websockets.ConnectionClosed errors on duplicate close()
- move connection closed log inside if statement
- Update initialize_options method to allow optional browser_type parameter
- Refactor Edge browser options handling to use EdgeOptions class
- Supports initialization options based on browser type
- Edge browser constructors to support optional connection port parameters
- Add Microsoft Edge browser support
- 为 Edge 浏览器添加默认用户数据目录支持
- Add Microsoft Edge browser support
- Clean up imports and improve code formatting across browser modules
- Simplify user data directory setup and enhance Edge browser path handling
- solve browser invalid domain events issue
- improve process termination
- improve process management and deactivate websockets connection size limit
- import commands and evebts from init.py
- fixed the tests and used lint for the OS multi path support
- support multiple default Chrome paths on each OS
- remove unnecessary encoding from screenshot response data
- add method to retrieve screenshot as base64 encoded string
- refactor Chrome constructor to use Optional for parameters
- refactor proxy configuration retrieval for cleaner code flow
- Get file extension from file path and changes use of reserved word 'format' to 'fmt'
- resolve issue #29 where browser path was not found on macOS
- Quickstart code given in README is wrong
- add close method and command to Page class functionality
- add method to retrieve Page instance by its ID in Browser class
- add dialog property to ConnectionHandler and manage dialog state
- now you'll have to use By.CSS_SELECTOR instead of By.CSS
- refactor import and export statements for better readability
- update changelog for version 0.7.0 and fix dependency versions
- add ping method to ConnectionHandler for browser connectivity check
- add tests for BrowserCommands in test_browser_commands.py
- add initial module files for commands, connection, events, and mixins
- add connection port parameter to Chrome browser initialization
- use deepcopy for templates to prevent mutation issues
- rename constant CSS to CSS_SELECTOR
- add command imports and remove obsolete connection handler code
- refactor methods to be static in ConnectionHandler class
- refactor proxy configuration and cleanup logic in Browser class
- refactor ConnectionHandler to improve WebSocket management logic
- refactor Browser class initialization for better clarity and structure
- refactor Browser initialization to enhance flexibility and defaults
- refactor import statement for ConnectionHandler module
- refactor import paths for ConnectionHandler in browser modules
- implement ConnectionHandler for WebSocket browser automation
- implement command and event management for asynchronous processing
- remove unnecessary logging for WebSocket address fetching
- refactor Chrome class to use BrowserOptionsManager for path validation
- implement proxy and browser management in the new managers module
- refactor Browser class to use manager classes for better structure
- refactor DOM command scripts for clarity and efficiency
- autoremove dialog from connection_handler when closed
- add handle_dialog method to PageCommands class
- add dialog handling methods to Page class
- add support for handling JavaScript dialog opening events
- refactor network response handling for base64 encoding support
- add clipping option for screenshots and implement element capture
- index error on method get_dialog_message
- update screenshot format from 'jpg' to 'jpeg' for consistency
- handle potential IndexError when retrieving valid page targetId
- filter valid pages using URL condition instead of title check
- run ruff formatter to ensure code consistency
- run ruff formatter to ensure code consistency
- change screenshot format from PNG to JPG in commands and element
- add callback ID handling for page load events in Page class
- update event registration to return callback IDs and add removal
- refactor DOM commands to use object_id instead of node_id
- refactor page navigation and loading logic for efficiency
- add page reload after navigating to a new URL in Page class
- refactor URL navigation to use evaluate_script for efficiency
- implement page refresh on URL unchanged and add navigation event
- update object ID reference in Page class for clarity
- refactor element search logic to simplify error handling
- DomCommands using
object_idinstead ofnode_idto prevent bugs - handle OSError when cleaning up temporary directories in Browser
- change error log to warning for missing callback ID
- refactor DOM command scripts for improved readability and reuse
- rename methods for clarity and consistency in WebElement class
- refactor parameter names for consistency in target methods
- normalize variable naming for consistency in fetch commands
- simplify outer HTML retrieval for consistent object handling
- refactor click method to check option tag earlier in flow
- refactor bounding box retrieval to access nested response value
- handle KeyError instead of IndexError for element bounds retrieval
- enhance DOM command methods and rename for clarity and consistency
- add JavaScript bounding box retrieval for web elements
- remove redundant top-checks for element clicks in WebElement
- add method to generate command for calling a function on an object
- implement script execution and visibility checks in click method
- add JavaScript functions for element visibility and interaction
- enhance exception classes with descriptive error messages
- simplify command creation by using RuntimeCommands.evaluate_script
- refactor JavaScript execution and introduce runtime commands
- remove redundant DOM content loaded event handling logic
- rename event variables for clarity and improve timeout handling
- remove debug print statement from connection event handling
- update event handling to use DOM_CONTENT_LOADED for page load
- convert Browser context management to async methods
- fix string formatting in logger info message for clarity
- fixes workflow removing unnecessary hifen
- reduce sleep duration in key press handling for improved speed
- add type_keys method for realistic key input simulation
- addning new package version
- removing encode utf8 in get_pdf_base64
- set_download_path added in browser class methods
- dynamic lib version using pyproject
- ensure browser process terminates after executing close command
- add method to delete all cookies from the browser session
- add is_enabled property to check element's enabled status
- add option to raise exception in wait_element method
- add method to set browser download path via command
- refactor text extraction using BeautifulSoup for accuracy
- add method to get properties and improve XPath handling
- refactor text retrieval methods and improve code readability
- add timeout parameter to page navigation and loading methods
- add cookie management and scroll into view functionality
- add method to retrieve page PDF data as base64 string
- add async property to retrieve inner HTML of the element
- add async page_source property to retrieve page source code
- add async property to retrieve the current page URL
- add method to find multiple DOM elements using selectors
- refactor WebElement to use FindElementsMixin for clarity
- add FindElementsMixin for asynchronous DOM element handling
- add methods to retrieve network response bodies from logs
- add method to retrieve matching network logs from the page
- add cookie management methods to the Browser class
- add ElementNotFound exception to handle missing elements
- add value property and handle option tag clicks in WebElement
- rename FIND_ELEMENT_XPATH_TEMPLATE to EVALUATE_TEMPLATE
- add exception handling for element not found in find_element method
- downgrade Python version requirement to 3.10 in pyproject.toml
- add async function to fetch browser WebSocket address
- simplify text input handling by using insert_text command
- add TargetCommands class for managing target operations
- add method to generate command for disabling the Page domain
- add method to generate text insertion commands for inputs
- add Page class to manage browser page interactions and events
- add page management methods to the Browser class
- add detailed logging for command responses and event handling
- add event classes for browser, DOM, fetch, and network actions
- add NetworkCommands class for managing network operations
- implement fetch command methods for handling requests and responses
- add method to enable DOM domain events in DomCommands class
- add proxy configuration and fetch event handling to Browser
- refactor connection errors to use custom exceptions for clarity
- add methods to clear callbacks and close WebSocket connection
- remove unnecessary newline at the end of PageEvents class file
- add context managers and async file handling for efficiency
- implement singleton pattern and prevent multiple initializations
- add dynamic connection port handling for browser instance
- add temporary directory management for browser session storage
- add logging for connection events and command executions
- add PageEvents class with PAGE_LOADED event constant
- add temporary callback option to event registration method
- add page event handling and improve loading timeout management
- add utility function to decode base64 images to bytes
- add WebElement class for handling browser elements asynchronously
- add enumeration for selector types in constants module
- add PageCommands class for browser page control functions
- add InputCommands class for handling mouse and keyboard events
- implement DOM commands for interacting with web elements
- refactor BrowserCommands to include new window management methods
- implement some basic methods to navigate and control the browser instance
- enhance ConnectionHandler with detailed docstrings for methods
- add .gitignore, .python-version, and poetry.lock files
- browser context now uses the storage commands to get cookies, while the page context us cookies, while page context uses network
- update cookie retrieval to use NetworkCommands for consistency
- remove download path method from Browser and add to Page class
- add options to disable first-run and browser check flags
- handle KeyError when retrieving network response bodies
- use get() to safely retrieve attributes in WebElement class
- rename class attribute retrieval for clarity and consistency
- enhance get_properties and simplify text retrieval method
- enhance create_web_element call with additional value parameter
- fix incorrect key access in JavaScript evaluation result
- update cookie management to clear browser cookies correctly
- filter pages by title instead of URL in Browser class
- filter out non-page entries when fetching valid page IDs
- xpath element solved
- refactor event callback storage to use unique callback IDs
- add JavaScript execution method and enhance click offsets
- simplify response handling and improve event callback structure
- reorder page event enabling to ensure proper browser startup
- add JSON handling and improve WebSocket command execution
- improve WebElement representation and handle None for nodeValue
- add newline at end of file for ElementNotFound exception class
- remove unused aiohttp import and clean up whitespace
- remove unnecessary blank lines in storage.py for clarity
- fix missing newline at the end of the file in page.py
- remove unnecessary whitespace in InputCommands class methods
- refactor DOM command methods for improved clarity and usability
- refactor Page class to inherit from FindElementsMixin
- refactor code to remove duplicate import of StorageCommands
- clarify error messages for command and callback validation
- refactor ConnectionHandler to simplify initialization and connect logic
- remove unnecessary whitespace in element.py for cleaner code
- refactor WebElement to enhance attribute retrieval methods
- refactor connection handling and improve error messaging
- refactor Browser class to use abstract base class and commands