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.
Declarative: the code is just a list of actions.
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:
See also:
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:
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.
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 broken - something, as a rule, we’d like to avoid.
minor
increments to convey significant new features have been added.
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.
Etaoin is open for your improvements and ideas. If any of 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.
Can you improve this documentation? These fine people already did:
lread, Lee Read, Ivan Grishaev, Uday Verma & Raimon GrauEdit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close