Haskell bindings for the W3C WebDriver API.
webdriver-w3c
is a Haskell library providing bindings to the WebDriver API, enabling us to write Haskell programs that control web browsers. It is actively tested against geckodriver
and chromedriver
, as well as a fake remote end implementation. It is implemented as a monad transformer.
Also included is an integration with the tasty test framework.
Note that this library requires GHC >=8.6 due to a transitive dependency on QuantifiedConstraints
.
WebDriver is an HTTP API for interacting with a web browser remotely. It is on track to become a W3C specification and based on work done by the Selenium community.
If you:
- Are interested in browser automation, especially for testing,
- Want to write browser automation code in Haskell, and
- Don't mind filing bug and feature requests,
then you might give webdriver-w3c
a try.
This library is unrelated to webdriver except in spirit. That library is older and more mature, and depending on your needs may be more appropriate.
Depends on what you want!
- A cursory glance: This brief tutorial shows how to go from nothing to one very simple test.
- To start a simple project: If you want to write a test suite, there's a separate tutorial on using the tasty integration.
- To dig into the API: The API docs are on Hackage.
- To mess with the library code: There's a very small amount of developer documentation; I'm also happy to answer questions.
Nathan Bloomfield (@nbloomf) wrote and maintains the code.
Other contributors, in lexicographic order:
- Ivan Enderlin (@hywan)
And users like you!
Also thanks to my employer for allowing -- actually, requiring :) -- this to be open source.
And special thanks to Jonathan Lipps' Simplified Guide to the WebDriver spec.