A port of the Puppeteer browser automation library to run natively on Deno.
deno-puppeteer is a port of the Puppeteer library that allows developers to control browsers programmatically using the Deno runtime. It solves the problem of browser automation, testing, and web scraping within Deno's secure, modern JavaScript/TypeScript environment, providing the same powerful API as the original Node.js version but native to Deno.
Deno developers who need browser automation for tasks like testing, scraping, generating screenshots/PDFs, or performance analysis without switching to Node.js.
Developers choose deno-puppeteer because it brings the robust Puppeteer API to Deno with minimal differences, using Deno's native module imports and avoiding Node.js dependencies. It's the go-to solution for browser automation in Deno projects.
A port of puppeteer running on Deno
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 Deno's URL-based imports and avoids Node.js dependencies, providing a seamless experience for Deno projects without polyfills or compatibility layers.
Maintains the high-level Puppeteer API with minimal changes (e.g., Uint8Array instead of Buffer), reducing the learning curve for developers already skilled in Puppeteer.
Supports both Chrome/Chromium and Firefox Nightly via environment variables, offering flexibility for cross-browser automation tasks within Deno.
Includes robust capabilities like screenshot/PDF generation, SPA crawling, and performance tracing, as demonstrated in the README examples for real-world use cases.
Installation and execution require the --unstable flag in Deno, relying on experimental features that may change or break, making it risky for production deployments.
Only validated against specific browser versions (e.g., Chrome v16.2.0), which can lead to compatibility issues with newer or custom builds, unlike the more frequently updated Node Puppeteer.
Relies on upstream Puppeteer documentation that may not fully address Deno-specific nuances, such as the Docker setup or unstable flag requirements, creating potential gaps for users.