I know, I know, I should be writing these posts more frequently, but I’m having so much fun at my new gig, and it’s not easy to keep up the pace.
It’s hard to believe it’s been a year! since my last blog post, but here we are in Puppeteer-Sharp 7!
Let me walk you through all the new features released since my last blog post.

Chromium 100

The good news is that we now support Chrome/Chromium 100! But maybe not that good news is that Chromium 100 is now the minimum requirement due to many changes in how Chromium sends requests and responses data.

Keeping the fox alive

We’ve been doing some work so you can use most puppeteer features with the latest Firefox version.


You now can wait for the network idle at any time using Page.WaitForNetworkIdleAsync.


You can not only wait for network idle but emulate this state! For instance:

await page.EmulateIdleStateAsync(new EmulateIdleOverrides() {IsUserActive = true, IsScreenUnlocked = false});

Drag and Drop support

Emulating drag and drop was quite hard to accomplish in the past. Now you have an API for that!

await Page.SetDragInterceptionAsync(true);
var draggable = await Page.QuerySelectorAsync("#drag");
var dropzone = await Page.QuerySelectorAsync("#drop");
await draggable.DragAndDropAsync(dropzone);


Now you can emulate different vision deficiencies using Page.EmulateVisionDeficiencyAsync.


You can also emulate CPU throttling with Page.EmulateCPUThrottlingAsync!

await Page.EmulateCPUThrottlingAsync(100);

It’s our Puppeteer-Sharp!

Just a friendly reminder. Puppeteer-Sharp is an independent community project. It’s not being backed nor supported but any big (or small) corp. It depends on your support and contributions!
I want to thank Alex Maitland, Fernando Bracamonte, MantasVa, thomaschanneladvisor, Venkatesh Prasad, Matěj Štágl, jpeirson, Eric Mutta, Chris-Dev-GH, Kabue Charles, Kevin Lee Garner, Pierre Irrmann, Arnaud Maichac and brnbs for contributing to the project during this past year.

I hope you can get more of my posts soon :)

Don’t stop coding!