PlaywrightExtraSharpNext 1.0.8
dotnet add package PlaywrightExtraSharpNext --version 1.0.8
NuGet\Install-Package PlaywrightExtraSharpNext -Version 1.0.8
<PackageReference Include="PlaywrightExtraSharpNext" Version="1.0.8" />
<PackageVersion Include="PlaywrightExtraSharpNext" Version="1.0.8" />
<PackageReference Include="PlaywrightExtraSharpNext" />
paket add PlaywrightExtraSharpNext --version 1.0.8
#r "nuget: PlaywrightExtraSharpNext, 1.0.8"
#:package PlaywrightExtraSharpNext@1.0.8
#addin nuget:?package=PlaywrightExtraSharpNext&version=1.0.8
#tool nuget:?package=PlaywrightExtraSharpNext&version=1.0.8
3 This is a fork of the original repository with updated dependencies
The original API still applies, so you can use it as a drop-in replacement
All credit goes to the original authors
PlaywrightExtraSharp
Based on Puppeteer extra sharp and Node.js Playwright extra
Quickstart
Long way
// Initialization plugin builder
var playwrightExtra = new PlaywrightExtra(BrowserTypeEnum.Chromium);
// Install browser
playwrightExtra.Install();
// Use stealth plugin
playwrightExtra.Use(new StealthExtraPlugin());
// Launch the puppeteer browser with plugins
await playwrightExtra.LaunchAsync(new ()
{
Headless = false
});
// Create a new page
var page = await playwrightExtra.NewPageAsync();
await page.GoToAsync("http://google.com");
Compact way
// Initialize, install, use plugin and launch
var playwrightExtra = await new PlaywrightExtra(BrowserTypeEnum.Chromium)
.Install()
.Use(new StealthExtraPlugin())
.LaunchAsync(new ()
{
Headless = false
});
// Create a new page
var page = await playwrightExtra.NewPageAsync();
await page.GoToAsync("http://google.com");
Note
Because of how Playwright behaves with pages, you should only create new pages through PlaywrightExtra wrapper and not IBrowser. Please refer to examples above.
Context Persistence
There are 4 different ways to work with context in PlaywrightExtra:
- launch incognito (as default was) with permanent context
.LaunchAsync(new ()
{
Headless = false
},
persistContext: true)
- launch incognito with new context per page (so when page is closed, context is disposed)
.LaunchAsync(new ()
{
Headless = false
},
persistContext: false)
- launch persistent (user data dir is considered) with permanent context
.LaunchPersistentAsync(new ()
{
Headless = false
},
persistContext: true)
- launch persistent with new context per page
.LaunchPersistentAsync(new ()
{
Headless = false
},
persistContext: false)
User data directory
While running persistent mode you can specify path to user data directory.
When context is persisted, specify directory at launch:
.LaunchPersistentAsync(new ()
{
Headless = false
},
persistContext: true,
userDataDir: "/path/to/userdir")
When context is created for each page (persistContext: false), specify directory at page creation:
var page = await _playwrightExtra.NewPageAsync(userDataDir: "/path/to/userdir");
Helpers
For convenience, you can use helper method when performing request:
await page.GotoAndWaitForIdleAsync("http://google.com/",
idleTime: TimeSpan.FromMilliseconds(1000));
Basically this works like if you perform request with option WaitUntil = WaitUntilState.NetworkIdle
But unlike builtin method, you can specify amount of time to wait after last request has fired.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Playwright (>= 1.56.0)
- RestSharp (>= 112.1.0)
-
net10.0
- Microsoft.Playwright (>= 1.56.0)
- RestSharp (>= 112.1.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 |
|---|---|---|
| 1.0.8 | 475 | 11/21/2025 |
Playwright version update to 1.56.0
RestSharp version update to 112.1.0