UNPKG

browser-use-typescript

Version:

A TypeScript-based browser automation framework

148 lines (111 loc) 4.78 kB
# browser-use-typescript A TypeScript port of the browser-use library, providing a powerful and flexible framework for browser automation using Large Language Models (LLMs). ## Features - **LLM-Powered Automation**: Leverage the power of Large Language Models for intelligent browser automation - **Type Safety**: Full TypeScript support with comprehensive type definitions - **Async/Await Support**: Built with modern JavaScript practices for better control flow - **DOM Manipulation**: Advanced DOM traversal and manipulation capabilities - **Performance Metrics**: Built-in performance tracking and optimization - **Error Handling**: Robust error handling and recovery mechanisms - **Modular Design**: Clean architecture for easy extension and customization ## Installation ```bash npm install browser-use-typescript ``` ## Quick Start ```typescript import { Agent } from 'browser-use-typescript'; async function example() { const agent = new Agent(); await agent.init(); // Navigate to a page await agent.navigate('https://example.com'); // Perform actions await agent.act('Click the login button'); // Extract information const data = await agent.extract('Get the main heading text'); console.log(data); } ``` ## Key Components ### Agent The main interface for browser automation. Handles high-level operations and coordinates between different components. ### Browser Context Manages browser state and provides low-level browser operations. Uses an async initialization pattern for better performance: - Async initialization in constructor - Promise-based state management - Initialization state verification - Safe method execution with state checks ### DOM Service Handles DOM manipulation and traversal with efficient caching mechanisms: - Element location caching - Computed style caching - Efficient DOM tree traversal - Smart element selection strategies ### Controller Context Manages the execution flow and coordinates between the agent and browser components: - Action registry management - State synchronization - Error handling and recovery - Event management ## Advanced Usage ### Custom Actions ```typescript import { Agent, ActionConfig } from 'browser-use-typescript'; const agent = new Agent(); await agent.init(); const customAction: ActionConfig = { name: 'customClick', description: 'Custom click action with verification', handler: async (target) => { await agent.act(`Click ${target}`); await agent.verify('Element was clicked'); } }; agent.registerAction(customAction); ``` ### Performance Optimization The library includes built-in performance optimization features: - DOM tree caching for faster element lookup - Computed style caching to reduce browser reflows - Efficient DOM traversal algorithms - Smart element selection based on context ## API Documentation ### Agent Class - `init()`: Initialize the agent and browser context - `act(instruction: string)`: Perform an action based on natural language instruction - `extract(query: string)`: Extract information from the page - `navigate(url: string)`: Navigate to a URL - `verify(condition: string)`: Verify a condition on the page ### Browser Context - `initialize()`: Set up browser environment - `getPage()`: Get current page instance - `executeScript()`: Execute JavaScript in page context - `_ensure_initialized()`: Internal method to verify initialization ### DOM Service - `findElement()`: Find elements using various strategies - `getAttribute()`: Get element attributes - `modifyElement()`: Modify element properties - `buildDomTreeOverlay()`: Create DOM tree visualization ## Contributing Contributions are welcome! Please read our contributing guidelines for details on our code of conduct and the process for submitting pull requests. ## License MIT License - see the [LICENSE](LICENSE) file for details. ## Acknowledgments This project is a TypeScript port of the original browser-use project, enhanced with: - Complete type safety - Modern JavaScript features - Improved error handling - Better performance optimization - Comprehensive documentation ## Support - Documentation (Coming Soon) - [Issue Tracker](https://github.com/yourusername/browser-use-typescript/issues) - [Discussions](https://github.com/yourusername/browser-use-typescript/discussions) ## Version History Current Version: 1.0.10 - Added comprehensive TypeScript support - Implemented async initialization pattern - Enhanced DOM manipulation capabilities - Improved performance with caching mechanisms - Added type definitions for all components