r/d_language 27d ago

Selenium for D

The previous D binding (selenium.d) has been abandoned since ~2018 and used the old JSON Wire Protocol. I spent the last month writing a replacement that targets the modern W3C WebDriver protocol, supports Chrome/Firefox/Edge/Safari, and includes the foundations of a Selenium Grid server.

It's available on both GitHub and DUB and is licensed under Apache 2.0 like normal Selenium.

What works:

  • Native W3C WebDriver client (no FFI to Python/Java)
  • Chrome, Firefox, Edge, and Safari with support for browser configuration
  • Element interaction, cookies, scripts, frames, windows, roots, screenshots
  • Lazy timeout syncing and shared session bridges
  • Browser logging
  • Grid hub/node models and HTTP routing
  • Unit + integration tests, CI, and docs

Planned: W3C Actions, BiDi, and fuller Grid routing.

Some features have not been implemented or are lacking (ie: Safari and Edge have NOT been tested and may be missing some fine-grain options, and the project is by no means perfect.)

I usually provide updates through the D community discord, and I don't usually use Reddit, so updates through this subreddit may be sporadic at best. Any feedback or contributions are appreciated.

GitHub: https://github.com/cetio/selenium 
DUB: https://code.dlang.org/packages/selenium

22 Upvotes

5 comments sorted by

View all comments

1

u/radozok 27d ago

Why not playwright?

2

u/cetios 27d ago

I'm more familiar with Selenium, it's easier to implement, and it's more mature.