CheckOps
Puppeteer Sharp
Puppeteer Sharp is an MIT-licensed .NET port of the Node.js Puppeteer API for automating Chrome and Firefox, with WebDriver BiDi support for Firefox.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
Puppeteer Sharp is a .NET port of the official Node.js Puppeteer API. It lets C# developers launch and control Chrome or Firefox, navigate pages, interact with elements, evaluate JavaScript, intercept requests and capture screenshots and PDFs.
The README highlights testing the latest Firefox versions through WebDriver BiDi (since version 21) and AOT compilation support (since version 19). It ships as several packages: PuppeteerSharp for full cross-browser automation, PuppeteerSharp.Cdp for Chrome-only AOT apps where binary size matters, and a companion for ASP.NET Classic.
The library targets .NET Standard 2.0 (for .NET Framework 4.6.1+ and .NET Core 2.0+) and has a .NET 8 build. It can download a browser automatically with BrowserFetcher.
In the quality loop it supports end-to-end checks and rendering tests in .NET projects.
Features
- Puppeteer API in C#: Familiar API for anyone who knows Puppeteer.
- Chrome and Firefox: CDP for Chrome, WebDriver BiDi for Firefox.
- Request interception: Mock or block network calls.
- Screenshots and PDFs: Render pages for checks or documents.
- AOT support: Smaller binaries with the CDP package.
Pros
- Native .NET: No Node.js needed.
Cons
- No WebKit: Safari engine not covered; Playwright for .NET covers WebKit.
- Library only: Use with NUnit, xUnit or MSTest for test structure.
Usage and Links (Example)
await new BrowserFetcher().DownloadAsync();
await using var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
await using var page = await browser.NewPageAsync();
await page.GoToAsync("https://example.com");
Assert.Equal("Example Domain", await page.GetTitleAsync());
Resources:
Pricing
See site.
Recommended for?
- .NET teams who know Puppeteer.
- Rendering and PDF jobs in .NET.
- Not a fit when Safari/WebKit coverage matters.
Conclusion
Puppeteer Sharp is a faithful, actively maintained Puppeteer port for .NET.
On CheckOps, Puppeteer Sharp is filed under the End-to-end & functional stage. Related tools listed here include Puppeteer, Playwright, Selenium, Atata, chromedp and Browserless. Before choosing, compare them on licence, supported languages and platforms, hosting model, and how well each fits your existing CI pipeline. Facts on this page were checked against the official website, documentation and repository on 11 November 2026; statements the vendor makes about its own product are marked as vendor claims.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with Puppeteer Sharp side by side.
PPuppeteerJavaScript API for Chrome and Firefox.Compare with Puppeteer Sharp
PPlaywrightPlaywright is a framework for Web Testing and Automation.Compare with Puppeteer Sharp
SSeleniumA browser automation framework and ecosystem.Compare with Puppeteer Sharp
AAtataAtata is an Apache-2.0 C#/.NET test automation framework built around a fluent page object pattern on Selenium WebDriver, with built-in logging, triggers and reporting integrations.Compare with Puppeteer Sharp
Cchromedpchromedp is an MIT-licensed Go package that drives Chrome and other Chrome DevTools Protocol browsers directly from Go, without external dependencies such as Selenium or Node.js.Compare with Puppeteer Sharp
BBrowserlessBrowserless runs headless Chrome, Firefox and WebKit as a service, in Docker or in its cloud, so Puppeteer and Playwright scripts connect over WebSocket; source available under SSPL-1.0 or a commercial licence.Compare with Puppeteer Sharp