A release with an intentional breaking changes is marked with:
-
[breaking] you probably need to change your code
-
[minor breaking] you likely don’t need to change your code
-
#524: fix failure in bb related to
Thread/sleep
interop in JDK19
-
#503: Address Clojure interop issue introduced by new Thread/sleep signature in JDK 19
-
#513: Fix rendering of exception when used from REPL
-
bumped Etaoin dependencies
-
docs:
-
#447: Describe testing without a display in the user guide, including a new requirement for a windows manager when using a virtual display on Linux
-
#507: The current version of babashka, which is the only one we support, no longer requires the a dependency to the babashka spec.alpha fork to use the Etaoin ide feature. Tests and docs updated accordingly.
-
Minor Breaking Changes
-
#412: Rename
etaoin.keys/num-.
toetaoin.keys/num-dot
.
The symbolnum-.
is technically an invalid Clojure symbol and can confuse tooling.
A grep.app fornum-.
found Etaoin itself as the only user of this var. If your code usesetaoin.keys/num-.
, you’ll need to rename it toetaoin.keys/num-dot
. -
#471:
etaoin.api/defaults
keyword:path
renamed to:path-driver
to match keyword used in driver options. -
#430: Declare the public API. We made what we think is a good guess at what the public Etaoin API is. The following namespaces are now considered internal and subject to change:
old namespace new internal namespace etaoin.client
etaoin.impl.client
etaoin.driver
etaoin.impl.driver
etaoin.proc
etaoin.impl.proc
etaoin.util
etaoin.impl.util
etaoin.xpath
etaoin.impl.xpath
etaoin.ide.api
etaoin.ide.impl.api
etaoin.ide.spec
etaoin.ide.impl.spec
The following vars are now considered internal and subject to change:
namespace var etaoin.api
default-locator
dispatch-driver
find-elements*
format-date
get-pwd
join-path
locator-css
locator-xpath
make-url
make-screenshot-file-path
postmortem-handler
process-log
proxy-env
use-locator
with-exception
with-locator
etaoin.dev
build-request
group-requests
log→request
parse-json
parse-method
process-log
request?
try-parse-int
etaoin.ide.flow
all except for:
run-ide-script
etaoin.ide.main
all except for:
-main
If we got this wrong your code will fail, you will tell us, and we can discuss.
Other Changes
-
#380: Etaoin is now Babashka compatible!
-
#413: Etaoin now exports a clj-kondo config to help with the linting of its many handy macros
-
#357: Add support for connecting to a remote WebDriver via
:webdriver-url
(thanks @verma for the PR and @mjmeintjes for the example usage!) -
#355: Add support for W3C WebDriver print to PDF feature
-
#466: WebDriver process output can now also be directed to console
-
#468: Failed WebDriver process launch can now be automatically retried
-
#453: The
etaoin.api/with-<browser>
macros no longer requireopts
to be specified. This makes the advantage of neweretaoin.api2/with-<browser>
macros maybe less obvious. That said, for Etaoin users who have adopted and prefer the api2 versions, they are still there, but no longer documented in the user guide. -
#383: Drop testing for Safari on Windows, Apple no longer releases Safari for Windows
-
#388: Drop testing for PhantomJS, development has long ago stopped for PhantomJS
-
#387: No longer testing multiple key modifiers for a single webdriver send keys request
-
#384: Look for
safaridriver
on PATH by default -
#402: Only send body for webdriver
POST
requests to appeasesafaridriver
-
#403: The
select
fn now clicks on theselect
element before clicking theoption
element to appeasesafaridriver
-
#408: Fix
switch-window
formsedgedriver
-
#432: Switched from
project.clj
todeps.edn
. This will allow for easier testing of unreleased versions of Etaoin via git deps. It also unconvered that our minimum Clojure version was 1.10, instead of the advertised v1.9. Fixed. -
#455: Automatically create specified parent dirs for screenshots
-
#469: Include WebDriver process liveness in http client exception
-
#446: Bump Etaoin dependencies to current releases
-
Docs
-
#399: We now have an Etaoin logo! (a very nice parting gift from Etaoin’s founder @igrishaev)
-
Reviewed and updated API docstrings
-
#393: Add changelog
-
#426: Reorganize into separate guides
-
#396: Move from Markdown to AsciiDoc
-
User guide
-
-
Internal quality
-
#367: Use actions to fix double-click
-
#365: Improve status messages when waiting
Breaking Changes
-
#111: the driver instance is now a map instead of an atom.
Breaking changes are never embarked on lightly but we felt it important to transition to more a more idiomatic use of Clojure.
All the internal functions that used to modify the driver atom now just return a new version of a map. If you have
swap!
or something similar in your code for the driver, please refactor your code before you update.
Other Changes
-
#317: Add a description of the trouble with chromedriver
-
#316: Add with-tmp-dir for tests
-
#307: update examples for docker and remote connection
-
#315: Add :fn/has-string && return old version has-text
-
#314: Fix quit fn for remote driver
-
#311: Fix typos - headless
-
#309: Add test prevent process fork
-
#308: Fix check $HOST
-
#306: Make service functions private
-
#304: Add default port for remote connection
-
#303: Refactoring remote connection capabilities
-
#302: Add fns for connecting to remote drivers
-
#300: Add x11 for tests
-
#298: Make tests run in display mode
-
bump version in readme
-
Version 0.3.10-SNAPSHOT
-
Fix test ignorance
-
#297: Freeze chrome profile test
-
#293: Fix chrome profile test && reflect warn
-
#292: Add a description of the trouble
-
#291: Add log level for driver
-
#289: Fix chrome profile
-
#288: Fix get-performance-logs
-
#287: Fix tests
-
#286: Fix example for docker
-
#285: Add example for query-all
-
#284: Fix :fn/text && :fn/has-text
-
#281: Move session opts from run- to connect- driver
-
#279: Add click on field to fill-human
-
#277: Add fill human multi
-
#276: Add :fn/link
-
#275: Decrease default timeout
-
#274: Add shortcut wait-has-text-everywhere
-
#273: Add examples of query functions
-
#271: Add wrap-default-timeout && wrap-default-interval
-
#270: Add fn select decription && some fix
-
#269: Add query-tree fn
-
#268: Make some declarations private for :use
-
Fix creating dirs in postmortem handler
-
#267: Fix creating dirs in postmortem handler
-
#266: Fix get-inner-html for phantomjs
-
#265: Add phantomjs to docker && circleci
-
#264: Fix switch-window with PhantomJS
-
#262: Add pre checks for query fns
-
#263: Fix test-cookies for newest firefox
-
#261: Fix geckodriver install
-
#259: Add setting of env
-
#258: Fix installation geckodriver in docker
-
#257: Add logging to files
-
#256: Add opts for human input
-
#255: Add driver installation check
-
#254: Add http proxy settings
-
#253: Add edge support
-
#252: Add docker examle
-
#251: Add test examples
-
#248: Add fixture example
-
#249: Fix headless? && save capabilities
-
#247: Fix reflection warning && indent project.clj
-
#246: Aggressive indent
-
#245: Better free port discovery
-
#244: Auto release
-
Readme updated
-
#241: Add select fn
-
#238: Better legacy code
-
#237: Bump clj-http && cheshire
-
#236: Add example remote connection
-
Add Dockerfile && fix test
-
#233: Fix tests & circleci config
-
#231: Move safari from jwp to w3c protocol
-
#223: Use dir-img and dir-log if passed
-
#230: Move driver installation part and typo fix
-
#228: Fix syntax error in docs
-
Switch to codox for generating docs
-
#242: Add release tasks
-
Readme updated
-
#241: Add select fn
-
#238: Better legacy code
-
#237: Bump clj-http && cheshire
-
#236: Add example remote connection
-
Add Dockerfile && fix test
-
#233: Fix tests & circleci config
-
#231: Move safari from jwp to w3c protocol
-
#223: Use dir-img and dir-log if passed
-
#230: Move driver installation part and typo fix
-
#228: Fix syntax error in docs
-
Switch to codox for generating docs