Lyo.Web.Automation.PuppeteerSharp
3.0.0
dotnet add package Lyo.Web.Automation.PuppeteerSharp --version 3.0.0
NuGet\Install-Package Lyo.Web.Automation.PuppeteerSharp -Version 3.0.0
<PackageReference Include="Lyo.Web.Automation.PuppeteerSharp" Version="3.0.0" />
<PackageVersion Include="Lyo.Web.Automation.PuppeteerSharp" Version="3.0.0" />
<PackageReference Include="Lyo.Web.Automation.PuppeteerSharp" />
paket add Lyo.Web.Automation.PuppeteerSharp --version 3.0.0
#r "nuget: Lyo.Web.Automation.PuppeteerSharp, 3.0.0"
#:package Lyo.Web.Automation.PuppeteerSharp@3.0.0
#addin nuget:?package=Lyo.Web.Automation.PuppeteerSharp&version=3.0.0
#tool nuget:?package=Lyo.Web.Automation.PuppeteerSharp&version=3.0.0
Lyo.Web.Automation.PuppeteerSharp
PuppeteerSharp backend for the Lyo.Web.Automation abstractions. It launches Chrome, Chromium, Edge, or Firefox, owns a session-scoped browser context, and exposes the same tab,
frame, dialog, keyboard, and locator helpers as Lyo.Web.Automation.Playwright so JSON automation plans behave the same on this
engine. WebKit is rejected. This package does not reference Lyo.Http.Client or Lyo.Web.WebRenderer and does not download a browser.
Features
PuppeteerSharpBrowser. ConcreteIWebAutomationBrowser.StartBrowserAsynclaunchesBrowserKindfromBrowserExePathorAutomationBrowserDetectorand opens one page in a browser context.PuppeteerSharpTabManager/PuppeteerSharpBrowserTabInfo. Engine-native tab info. Portable tab switching stays onIWebAutomationTabs.PuppeteerSharpWebAutomationElementandPuppeteerSharpLocatorFactory. MapElementLocator(id, name, css, xpath, link text, class, tag) onto Puppeteer selectors.- Cloudflare handoff is host-owned. Copy the solver user-agent onto
UserAgents,ProxyUrlonto the context, and cookies ontoCookieJar. This package does not referenceLyo.Http.Client.
Examples
First steps
services.AddPuppeteerSharpBrowserServiceFromConfiguration(builder.Configuration);
var service = sp.GetRequiredService<IPuppeteerSharpBrowserService>();
using var session = service.CreateSession();
await session.StartBrowserAsync();
await session.Browser.NavigateAsync("https://example.com");
Service layer (Service/)
IPuppeteerSharpBrowserService.CreateSession()clones service options.CreateSession(Action<PuppeteerSharpBrowserOptions>)overlays that clone.CreateSession(new PuppeteerSharpSessionOptions())replaces it.ActiveSessionCount,Dispose.IPuppeteerSharpBrowserSession. Session scope.TabsisPuppeteerSharpTabManager.AddPuppeteerSharpBrowser,AddPuppeteerSharpBrowserService, andAddPuppeteerSharpBrowserServiceFromConfiguration. The options-instance overloads callValidate().
Settings (Configuration/PuppeteerSharpBrowserOptions.cs)
| Property | Default | Notes |
|---|---|---|
BrowserKind |
Chrome |
AutomationBrowserKind: Chrome, Chromium, Edge, Firefox. WebKit is rejected. Firefox drops Chromium launch-arg defaults. |
BrowserExePath |
null |
When empty, launch uses AutomationBrowserDetector for BrowserKind (that browser's env vars, then BROWSER_PATH and PUPPETEER_EXECUTABLE_PATH, then install paths). An explicit path wins. Launch throws when the file is missing. No browser download. |
Headless |
false |
Launch headless when true. |
ServiceRootDirectory |
{tmp}/lyo-puppeteersharp |
Each session creates session-{id}/ with browser-profile/, artifacts/, and downloads/. |
LaunchArguments |
Chromium defaults including --no-sandbox |
Every entry must start with -. ResolveLaunchArguments adds --window-size for Chrome, Chromium, and Edge. Firefox omits those defaults and --window-size. |
ViewportWidth / ViewportHeight |
1920 × 1080 |
CSS viewport. ApplySessionViewport can randomize from ViewportSizes. |
NavigationWaitUntil |
DOMContentLoaded |
Puppeteer waitUntil for goto and reload. |
NavigationTimeoutMs |
30000 |
Navigation timeout. |
LocatorDefaultTimeoutMs |
30000 |
Element wait used by each poll attempt. |
EnableMetrics |
true |
Records lyo.webautomation.puppeteersharp.* when an IMetrics is registered. |
Dependencies
Generated from ProjectReference / PackageReference (same model as docs/Lyo.ProjectGraph.html).
Lyo.Common.Core(direct, lyo)Lyo.IO.Temp(direct, lyo)Lyo.Web.Automation(direct, lyo)Microsoft.Bcl.AsyncInterfaces10.0.5(direct, microsoft, netstandard2.0)Microsoft.Extensions.Configuration.Binder10.0.5(direct, microsoft)Microsoft.Extensions.DependencyInjection.Abstractions10.0.5(direct, microsoft)Microsoft.Extensions.Logging.Abstractions10.0.5(direct, microsoft)PuppeteerSharp24.0.0(direct, third-party)System.Text.Json10.0.5(direct, microsoft, netstandard2.0)Lyo.Common.Metadata(transitive, lyo)Lyo.Exceptions(transitive, lyo)Lyo.Formatter(transitive, lyo)Lyo.IO.FileSystem(transitive, lyo)Lyo.Metrics(transitive, lyo)Lyo.Parameters(transitive, lyo)DynamicExpresso.Core2.19.3(transitive, third-party)Microsoft.Extensions.Hosting.Abstractions10.0.5(transitive, microsoft)SmartFormat.NET3.6.1(transitive, third-party)System.Memory4.6.3(transitive, microsoft, netstandard2.0)
| 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
- Lyo.Common.Core (>= 3.0.0)
- Lyo.IO.Temp (>= 3.0.0)
- Lyo.Web.Automation (>= 3.0.0)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.5)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.5)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.5)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.5)
- PuppeteerSharp (>= 24.0.0 && < 25.0.0)
- System.Text.Json (>= 10.0.5)
-
net10.0
- Lyo.Common.Core (>= 3.0.0)
- Lyo.IO.Temp (>= 3.0.0)
- Lyo.Web.Automation (>= 3.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.5)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.5)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.5)
- PuppeteerSharp (>= 24.0.0 && < 25.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 |
|---|---|---|
| 3.0.0 | 102 | 10/23/2026 |