WebReaper.Playwright
10.0.0
dotnet add package WebReaper.Playwright --version 10.0.0
NuGet\Install-Package WebReaper.Playwright -Version 10.0.0
<PackageReference Include="WebReaper.Playwright" Version="10.0.0" />
<PackageVersion Include="WebReaper.Playwright" Version="10.0.0" />
<PackageReference Include="WebReaper.Playwright" />
paket add WebReaper.Playwright --version 10.0.0
#r "nuget: WebReaper.Playwright, 10.0.0"
#:package WebReaper.Playwright@10.0.0
#addin nuget:?package=WebReaper.Playwright&version=10.0.0
#tool nuget:?package=WebReaper.Playwright&version=10.0.0
WebReaper.Playwright
Microsoft.Playwright-backed IPageLoadTransport for WebReaper — the modern, multi-browser headless-scraping satellite. Replaces the deleted WebReaper.Puppeteer in v10.
Why Playwright (not Puppeteer)
- Multi-browser: Chromium, Firefox, WebKit out of the box
- Auto-wait: actions wait for the right state by default; less explicit
WaitForSelectorboilerplate - Better network interception:
page.RouteAsyncover Puppeteer's older interception API - Official Microsoft .NET-native maintenance
- All 7
PageActionarms — closes the ADR-0004 §"Out of scope" four-arm gap the deleted Puppeteer transport had
For AOT-compiled consumers (and for stealth Chromium forks), use WebReaper.Cdp instead — Microsoft.Playwright's reflection-driven serialisation is not AOT-clean by design (ADR-0009 satellite quarantine).
Install
dotnet add package WebReaper.Playwright
# First run: Playwright downloads browser binaries
playwright install
Quick start
using WebReaper.Builders;
using WebReaper.Playwright;
// Default: Chromium
var engine = await ScraperEngineBuilder
.CrawlWithBrowser("https://example.com")
.Extract(schema)
.WithPlaywrightPageLoader()
.BuildAsync();
// Multi-browser
.WithPlaywrightPageLoader(PlaywrightBrowser.Firefox)
.WithPlaywrightPageLoader(PlaywrightBrowser.Webkit)
// Custom launch options (channel, headed, proxy, extra args)
.WithPlaywrightPageLoader(PlaywrightBrowser.Chromium, new PlaywrightLaunchOptions
{
Headless = false,
Channel = "chrome", // use installed Chrome instead of bundled Chromium
})
await engine.RunAsync();
Migration from WebReaper.Puppeteer
- using WebReaper.Puppeteer;
+ using WebReaper.Playwright;
- .WithPuppeteerPageLoader()
+ .WithPlaywrightPageLoader()
That is the full diff for the common case. See ADR-0053 for the deletion rationale.
SemVer
10.0.0 (initial release; carries the v10 major break — Puppeteer satellite deleted in the same release).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.8)
- Microsoft.Playwright (>= 1.49.0)
- WebReaper (>= 10.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.0 | 30 | 5/26/2026 |
10.0.0: initial release. Microsoft.Playwright-backed IPageLoadTransport per ADR-0053; replaces the deleted WebReaper.Puppeteer satellite in the same release (the v10.0.0 major break). Multi-browser default Chromium; Firefox/WebKit opt-in via PlaywrightBrowser enum. All 7 PageAction arms (ADR-0035) including SemanticAct (ADR-0050) — closes the ADR-0004 §"Out of scope" four-arm gap the Puppeteer transport had. Requires WebReaper 10.0.0.