An async/await friendly Chrome debugging client with TypeScript support, designed for automation.
chrome-debugging-client is a Node.js library that provides an async/await friendly client for the Chrome DevTools Protocol. It enables developers to automate Chrome or Chromium for tasks like debugging, PDF generation, performance testing, and web scraping. The library is designed with TypeScript support and focuses on reliable promise handling for automation scenarios.
Developers and QA engineers who need to automate Chrome for testing, debugging, or data extraction, particularly those working in Node.js environments with TypeScript.
It offers a modern, promise-based API with built-in TypeScript types and isolated Chrome instances, making it more reliable and easier to use than raw WebSocket implementations. Its focus on proper promise chaining and cancellation helps avoid common pitfalls in automation scripts.
An async / await friendly debugging client for chrome
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses async/await for sequential commands, as shown in the examples, making automation scripts more readable and reducing callback hell.
Integrates with 'devtools-protocol' types, allowing protocol version selection and ensuring type safety in commands, which minimizes runtime errors.
Launches Chrome with a temporary user data folder for each instance, preventing interference from existing Chrome sessions and ensuring clean automation runs.
Implements race-cancellation patterns to manage timeouts and avoid unhandled promise rejections, enhancing script reliability in complex workflows.
Exclusively supports Chrome or Chromium, making it unsuitable for projects that require testing or automation across multiple browser platforms.
Spawning new Chrome instances for each session consumes significant memory and CPU, not ideal for lightweight or high-concurrency environments.
Requires manual handling of Chrome DevTools Protocol commands, which can be verbose and complex compared to higher-level libraries like Puppeteer.