It has been a while since I wrote those Puppeteer-Sharp blog posts (maybe it’s time to do it again?). However, I thought it would be nice to recap all the progress made in 2023.
It can be quite challenging to keep Puppeteer-Sharp up-to-date. On one side I was implementing great features at mabl, that took most of my time. Additionally, I love using playwright! In my opinion, mabl is the leading low-code testing platform in the market, while playwright is the best end-to-end testing library.
So, how about Puppeteer-Sharp?
I hope that Puppeteer-Sharp can become the best multi-purpose browser automation library, the most complete CDP API in .net, and maybe, why not? the best/first Webdriver BiDi library for .net?
In 2023, Puppeteer-Sharp achieved over 9 million downloads and received sponsorship from the .NET on AWS Open Source Software Fund. These two acknowledgments were fuel for me.
My main goal in 2023 was to close the gap with puppeteer. I was able to launch 19 versions! I didn’t expect that number to be that big!
These are a few features I would like to highlight.
Query handlers
You can query elements by text:
await Page.SetContentAsync("<section>test</section>");
var testEl - await Page.QuerySelectorAsync("text/test");
Or even by Aria roles:
await Page.WaitForSelectorAsync("aria/[role=\"button\"]");
Event XPaths are also implemented using a query handler:
var els = await Page.QuerySelectorAllAsync("xpath///img");
Chrome for testing
How we download browsers also had a significant change. You can now download Chrome for testing instead of chromium. Keeping the browser up-to-date became a high-priority task.
You can look at many other new features on the release page.
About 2024.
Closing the feature gap will still be my top priority. But, the rumors about puppeteer moving to WebDriver Bidi sounds… exciting. Making Puppeteer-Sharp a great WebDriver BiDi API sounds promising.
On the personal side, I think this website need some refresh :)
Final words
What are you expecting from Puppeteer-Sharp in 2024? Should I write more? Should I share more examples? Let me know.
And remember, Puppeteer-Sharp is a library BY the community FOR the community. We build this library together. The issues tab in GitHub is open for all of you to share your ideas and thoughts. You can also sponsor the project. Even a single dollar would help me know you care about this project.
Remember to follow me on X @hardkoded for more updates.
Don’t stop coding!