A pure Clojure implementation of the Webdriver protocol, named after Etaoin Shrdlu — a typing machine that came to life after a mysterious note was produced on it.
Use the Etaoin library to automate a browser, test your frontend behaviour, simulate human actions or whatever you want.
Selenium-free: no big dependencies, no tons of downloaded jars, etc.
Lightweight, fast. Simple, easy to understand.
Compact: just one main namespace with a couple of helpers.
Currently supports Chrome, Firefox, Safari, and Edge.
Can either connect to a remote WebDriver process, or have Etaoin launch one for you.
Run your unit tests directly from Emacs by pressing C-t t
as usual.
Can imitate human-like behaviour (delays, typos, etc).
API docs and articles are best viewed on cljdoc:
User Guide
Developer Guide
See also:
Slack channel
Thoughts on UI tests Ivan’s blog-post about pitfalls that can occur when testing UI.
Live-coding session where Ivan works through some Etaoin issues.
Some companies:
Exoscale
Flyerbee
Barrick Gold
Doctor Evidence
Kevel (formerly Adzerk)
Guaranteed Rate
Some examples usages:
Control a SpaceX ISS Docking Simulator.
Automatically watch/refresh the browser when making edits to Babashka book.
Generate contributor badges for rewrite-clj, cljdoc and test-doc-blocks via a doc-update-readme babashka task.
Test browser behavior for re-find.web.
Test browser interactions for Quil.
Integration tests for clojurice.
You are most welcome to submit your company or project to this list.
Eatoin uses: major
.minor
.patch
-test-qualifier
major
increments when a non alpha release API has been majorly broken - something, as a rule, we’d like to avoid.
minor
increments to convey significant new features have been added or minor breakage.
patch
indicates bug fixes or minor changes - it is the total number of releases to date.
test-qualifier
is absent for stable releases.
Can be alpha
, beta
, rc1
, etc.
Alexey Shipilov
Adam Frey
JW Koelewijn
Miloslav Nenadál
Aleh Atsman
Marco Molteni
Maxim Stasenkov
Dave Yarwood
John Krasnay
Raimon Grau
Uday Verma
Matt Meintjes
Andrea Tupini
Dave Roberts
Lee Read
Michiel Borkent
Ivan Grishaev
Etaoin is open for your improvements and ideas. If any of the unit tests fail on your machine, please submit an issue giving your OS version, browser, and console output.
Copyright © 2017—2020 Ivan Grishaev.
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.