Releases: hardkoded/puppeteer-sharp
Releases · hardkoded/puppeteer-sharp
v14.0.0
Breaking changes
- Hopefully, this is not a big deal. But
IElementHandle.ScreenshotAsync(... ScreenshotOptions)
was renamed toIElementHandle.ScreenshotAsync(... ElementScreenshotOptions)
in #2376
What's New
- Update chrome to 121.0.6167.85 by @kblok in #2411
- Introduce Wait for device prompt by @kblok in #2392
You can now wait for a device prompt!
var promptTask = Page.WaitForDevicePromptAsync();
await Task.WhenAll(
promptTask,
Page.ClickAsync("#connect-bluetooth"));
var devicePrompt = await promptTask;
await devicePrompt.SelectAsync(
await devicePrompt.WaitForDeviceAsync(device => device.Name.Contains("My Device")).ConfigureAwait(false)
);
- Support fetching request POST data by @kblok in #2402
- Cooperative request intercepts by @kblok in #2403
Now you can use AddRequestInterceptor
instead of the Request
page and give the ContinueAsync
, AbortAsync
and RespondAsync
different priorities.
Page.AddRequestInterceptor(request =>
{
if (request.Url.EndsWith(".css"))
{
var headers = request.Headers;
headers["xaction"] = "continue";
return request.ContinueAsync(new Payload() { Headers = headers, }, 4);
}
return request.ContinueAsync(new Payload(), 0);
});
Page.AddRequestInterceptor(request =>
{
if (request.Url.EndsWith(".css"))
{
Dictionary<string, object> headers = [];
foreach (var kvp in request.Headers)
{
headers.Add(kvp.Key, kvp.Value);
}
headers["xaction"] = "respond";
return request.RespondAsync(new ResponseData() { Headers = headers, }, 2);
}
return request.ContinueAsync(new Payload(), 0);
});
AddRequestInterceptor
will ensure that these new async listeners are executed one after the other.
Full Changelog: v13.0.2...v14.0.0
v13.0.2
v13.0.1
v13.0.0
Breaking changes
We have a few more breaking changes in our effort to catch puppeteer.
FileChooser.Cancel
was renamed toCancelAsync
, and it's not Async by @kblok in #2336- New options on
CreateIncognitoBrowserContextAsync
to pass proxy settings. by @kblok in #2346 Worker
was renamed toWebWorker
by @kblok in #2356IExecutionContext.QueryObjectsAsync
was removed by @kblok in #2356IFrame.GetExecutionContextAsync
was removed by @kblok in #2356IJSHandle.ExecutionContext
was removed by @kblok in #2356
What's New
- Update Chrome to 119.0.6045.105 by @kblok in #2354
- Introduce screenshot optimize for speed option by @kblok in #2330
- Expose SessionAttached and SessionDetached events by @kblok in #2334
- Add tagged (accessible) PDFs option by @kblok in #2347
- Add
IsVisibleAsync
andIsHiddenAsync
by @kblok in #2349
What's Changed
- Implement BrowserContext.IsClosed by @kblok in #2329
- Remove puppeteer-sharp 3 blog post entry by @kblok in #2326
- Implement improved drag and drop API by @kblok in #2333
- Migrate to iterator based by @kblok in #2341
- Refactor global bindings by @kblok in #2343
- Remove obsolete binding code by @kblok in #2352
- Update badges by @hlaueriksson in #2355
- Update sponsors by @github-actions in #2360
- Remove System.Text.Encodings.Web by @jnyrup in #2361
Full Changelog: v12.0.0...v13.0.0
v12.0.0
New Browser Version
Chrome version is now 117.0.5938.62
Breaking change.
Small breaking change. But as it's a breaking change, we need to bump major. LaunchOption.TargetFilter
now expects a Target
instead a TargetInfo
.
What's Changed
- Introduce Target initialization status by @kblok in #2318
- BREAKING: Use target for filters by @kblok in #2319
- Separate target init from construction by @kblok in #2320
- Expose DevTools as a target by @kblok in #2321
- Remove Microsoft.AspNetCore.WebUtilities dependency by @kblok in #2324
- Add --disable-search-engine-choice-screen to default arguments by @kblok in #2325
- Roll to Chrome 117.0.5938.62 (r1181205) by @kblok in #2327
Full Changelog: v11.0.6...v12.0.0
v11.0.6
What's Changed
- Dropping .NET Framework test builds by @kblok in #2305
- Use the test project in the missing test tool by @kblok in #2308
- Add oopif tests by @kblok in #2310
- Change a querySelector test name by @kblok in #2309
- Add missing target manager tests by @kblok in #2312
- Implement merge group by @kblok in #2313
- Introduce an internal PageTarget subclass by @kblok in #2314
- Add WorkerTarget and OtherTarget by @kblok in #2315
- Move target updates to the target manager by @kblok in #2316
- Remove BrowserFetcher.DefaultChromiumRevision from code examples by @kblok in #2317
Full Changelog: v11.0.5...v11.0.6
v11.0.5
v11.0.4
What's Changed
- Mouse improvements by @kblok in #2291
- Remove unused code by @kblok in #2296
- Detach client event handler when detaching
IsolatedWorld
by @jnyrup in #2298 - Fix memory leaks with
AsyncDictionaryHelper
by @jnyrup in #2297 - Add missing click tests by @kblok in #2299
- Fix Chrome version fetching by @kblok in #2301
Full Changelog: v11.0.3...v11.0.4
v11.0.3
What's Changed
- Avoid unhandled exceptions on unawaited async path by @jnyrup in #2289
- Update screenshot options by @kblok in #2285
- Migrate to github actions by @kblok in #2282
- Increase test session timeout to 45 minutes by @kblok in #2290
- Run demo in macOS by @kblok in #2295
Full Changelog: v11.0.2...v11.0.3