README
webdriver-w3c
Haskell bindings for the W3C WebDriver API.
What is it?
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.
Who is it for?
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.
Where is the documentation?
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.
Who is responsible for this?
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.