A .NET port of the official Node.js Puppeteer API for headless browser automation.
Puppeteer Sharp is a .NET library that ports the official Node.js Puppeteer API, allowing developers to automate headless Chrome, Firefox, and other browsers. It provides a high-level API for tasks like generating screenshots and PDFs, scraping web content, automating user interactions, and testing web applications directly from .NET code. It solves the problem of browser automation and testing in the .NET ecosystem without relying on Node.js.
.NET developers who need to automate browsers for tasks like web scraping, automated testing, generating screenshots/PDFs, or performance monitoring. It's also suitable for teams building integration tests or content generation tools within .NET applications.
Developers choose Puppeteer Sharp because it brings the widely adopted Puppeteer API to .NET, offering a familiar and powerful interface for browser automation. Its cross-browser support, active maintenance, and compatibility with the original Node.js API make it a reliable choice for .NET projects requiring headless browser control.
Headless Chrome .NET API
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports Chrome, Firefox, and other browsers via a unified API, as highlighted in the README's feature list, enabling consistent automation across platforms.
Maintains high fidelity to the original Puppeteer API, easing transition for developers familiar with Node.js, per the project's philosophy section.
Regular updates like AOT compilation support (v19.0.0) and active Slack channel and StackOverflow presence demonstrate strong maintenance and support.
Includes screenshot, PDF generation, JavaScript evaluation, and remote connections, with detailed code snippets provided in the README for common use cases.
Requires X-server on Linux and references an external troubleshooting guide, indicating potential installation and runtime hurdles in headless environments.
Relies on BrowserFetcher to download browsers, adding startup latency and storage overhead, which can be cumbersome in constrained deployments.
As a .NET port, it lacks the extensive plugin ecosystem of Node.js Puppeteer, reducing third-party tooling options for advanced scenarios.