etaoin.api

(source)
A wrapper over the [W3C WebDriver Specification](https://www.w3.org/TR/webdriver/) to automate popular browsers. Tries to normalize differences across the various implementations. See the [User Guide](/doc/01-user-guide.adoc) for details and examples. This is a rich API: **WebDriver** - [[with-driver]] [[boot-driver]] [[defaults]] [[defaults-global]] [[when-not-drivers]] - [[with-chrome]] [[with-chrome-headless]] [[chrome]] [[chrome-headless]] [[chrome?]] [[when-chrome]] [[when-not-chrome]] - [[with-edge]] [[with-edge-headless]] [[edge]] [[edge-headless]] [[when-edge]] [[when-not-edge]] - [[with-firefox]] [[with-firefox-headless]] [[firefox]] [[firefox-headless]] [[firefox?]] [[when-firefox]] [[when-not-firefox]] - [[with-phantom]] [[phantom]] [[phantom?]] [[when-phantom]] [[when-not-phantom]] - [[with-safari]] [[safari]] [[safari?]] [[when-safari]] [[when-not-safari]] - [[driver?]] [[running?]] [[headless?]] [[when-headless]] [[when-not-headless]] - [[disconnect-driver]] [[stop-driver]] [[quit]] **WebDriver Lower Level Comms** - [[execute]] [[with-http-error]] **Driver Sessions** - [[get-status]] [[create-session]] [[delete-session]] **Querying/Selecting DOM Elements** - [[query]] [[query-all]] [[query-tree]] - [[exists?]] [[absent?]] - [[displayed?]] [[displayed-el?]] [[enabled?]] [[enabled-el?]] [[disabled?]] [[invisible?]] [[visible?]] - [[child]] [[children]] - [[get-element-tag]] [[get-element-tag-el]] - [[get-element-attr]] [[get-element-attr-el]] [[get-element-attrs]] - [[get-element-property]] [[get-element-property-el]] [[get-element-properties]] - [[has-class?]] [[has-class-el?]] [[has-no-class?]] - [[get-element-css]] [[get-element-css-el]] [[get-element-csss]] - [[get-element-text]] [[get-element-text-el]] [[has-text?]] - [[get-element-inner-html]] [[get-element-inner-html-el]] - [[get-element-value]] [[get-element-value-el]] - [[get-element-size]] [[get-element-size-el]] [[get-element-location]] [[get-element-location-el]] [[get-element-box]] [[intersects?]] - [[use-css]] [[with-css]] [[use-xpath]] [[with-xpath]] **Browser Navigation** - [[go]] [[get-url]] [[get-hash]] [[set-hash]] - [[back]] [[forward]] - [[refresh]] [[reload]] **Mouse/Pointer** - [[click]] [[click-el]] [[click-single]] [[click-multi]] - [[left-click]] [[left-click-on]] - [[middle-click]] [[middle-click-on]] - [[right-click]] [[right-click-on]] - [[mouse-click]] [[mouse-move-to]] [[mouse-click-on]] - [[double-click]] [[double-click-el]] - [[drag-and-drop]] [[mouse-btn-down]] [[mouse-btn-up]] - [[touch-down]] [[touch-move]] [[touch-tap]] [[touch-up]] **Inputs/Forms** - [[fill]] [[fill-active]] [[fill-el]] [[fill-multi]] - [[fill-human]] [[fill-human-el]] [[fill-human-multi]] - [[select]] [[selected?]] [[selected-el?]] - [[upload-file]] [[remote-file]] - [[disabled?]] [[enabled?]] - [[clear]] [[clear-el]] - [[submit]] **Cookies** - [[get-cookie]] [[get-cookies]] - [[set-cookie]] - [[delete-cookie]] [[delete-cookies]] **Alerts** - [[has-alert?]] [[has-no-alert?]] - [[get-alert-text]] - [[accept-alert]] [[dismiss-alert]] **Scrolling** - [[get-scroll]] - [[scroll]] [[scroll-by]] - [[scroll-bottom]] [[scroll-top]] - [[scroll-down]] [[scroll-up]] [[scroll-left]] [[scroll-right]] - [[scroll-offset]] - [[scroll-query]] **Scripting** - [[js-execute]] [[js-async]] [[js-localstorage-clear]] [[el->ref]] [[add-script]] **Browser Windows** - [[get-window-handle]] [[get-window-handles]] - [[get-window-position]] [[set-window-position]] - [[get-window-size]] [[set-window-size]] - [[maximize]] - [[switch-window]] [[switch-window-next]] - [[close-window]] **Frames** - [[switch-frame]] [[switch-frame-first]] [[switch-frame-parent]] [[switch-frame-top]] [[with-frame]] **Page Info** - [[get-source]] [[get-title]] **Screenshots** - [[screenshot]] [[screenshot-element]] [[with-screenshots]] **Print to PDF** - [[print-page]] **Browser Info** - [[supports-logs?]] [[get-log-types]] [[get-logs]] - [[get-user-agent]] - [[with-postmortem]] **Waiting** - [[doto-wait]] [[wait]] [[with-wait]] - [[*wait-interval*]] [[*wait-timeout*]] [[with-wait-interval]] [[with-wait-timeout]] - [[wait-exists]] [[wait-absent]] - [[wait-visible]] [[wait-invisible]] - [[wait-disabled]] [[wait-enabled]] - [[wait-has-alert]] - [[wait-has-class]] - [[wait-has-text]] [[wait-has-text-everywhere]] - [[wait-predicate]] - [[wait-running]] **Browser Timeouts** - [[get-implicit-timeout]] [[set-implicit-timeout]] - [[get-page-load-timeout]] [[set-page-load-timeout]] - [[get-script-timeout]] [[set-script-timeout]] [[with-script-timeout]] **WebDriver Actions** - [[make-action-input]] [[make-key-input]] [[make-mouse-input]] [[make-pen-input]] [[make-pointer-input]] [[make-touch-input]] - [[add-action]] - [[add-double-pause]] - [[add-key-down]] [[add-key-press]] [[add-key-up]] [[with-key-down]] - [[add-pause]] - [[add-pointer-click]] [[add-pointer-click-el]] [[add-pointer-double-click]] [[add-pointer-double-click-el]] - [[add-pointer-down]] [[add-pointer-up]] - [[with-pointer-btn-down]] [[with-pointer-left-btn-down]] [[with-mouse-btn]] - [[add-pointer-move]] [[add-pointer-move-to-el]] - [[add-pointer-cancel]] - [[perform-actions]] [[release-actions]] **Convenience** - [[rand-uuid]] [[when-predicate]] [[when-not-predicate]]
Public Variable Short Description
*wait-interval* (clj) Frequency in seconds to check if we should still wait, default for `wait-*` functions.
*wait-timeout* (clj) Maximum seconds to wait, default for `wait-*` functions.
->RemoteFile (clj)
RemoteFile (clj)
absent? (clj) Opposite of [[exists?]].
accept-alert (clj) Have `driver` accept open alert dialog.
add-action (clj) Return `input` with `action` added.
add-double-pause (clj) Return `input` source with two pause actions added.
add-key-down (clj) Return `input` source with `key` down action added.
add-key-press (clj) Return `input` source with `key` down and up actions added.
add-key-up (clj) Return `input` source with `key` up action added.
add-pause (clj) Return `input` source with a pause action added.
add-pointer-cancel (clj) Return `input` with a pointer cancel action added.
add-pointer-click (clj) Return `input` source with `pointer-button` down and up actions added.
add-pointer-click-el (clj) Return `input` source with `pointer-button` down and up actions on element `el` added.
add-pointer-double-click (clj) Return `input` source with `pointer-button` down, up, down, up actions added.
add-pointer-double-click-el (clj) Return `input` source with `pointer-button` down, up, down, up actions on element `el` added.
add-pointer-down (clj) Return `input` source with `pointer-button` down action added.
add-pointer-move (clj) Return `input` source with pointer move action added.
add-pointer-move-to-el (clj) Return `input` source with pointer move to element `el` action added.
add-pointer-up (clj) Return `input` source with `pointer-button` up action added.
add-script (clj) Have `driver` add script with src `url` to page.
back (clj) Have `driver` navigate backward in the browser history.
boot-driver (clj) Launch and return a driver of `type` (e.g.
child (clj) Uses `driver` to return single element satisfying query `q` under given `ancestor-el` element.
children (clj) Use `driver` to return a vector of unique elements satisfying query `q` under given `ancestor-el` element.
chrome (clj) Launch and return a Chrome driver.
chrome-headless (clj) Launch and return a headless Chrome driver.
chrome? (clj) Returns true if a `driver` is Chrome.
clear (clj) Have `driver` clear input element found by `q` (and optionally `more-qs`).
clear-el (clj) Have `driver` clear input element `el`.
click (clj) Have `driver` click on element found by query `q`.
click-el (clj) Have `driver` click on element `el`.
click-multi (clj) Have `driver` click on first element found by each query in vector `qs`.
click-single (clj) Have `driver` click on element found by query `q`.
click-visible (clj) Waits until `driver` finds visible element via query `q` then clicks on it.
close-window (clj) Have `driver` close current browser window.
create-session (clj) Have `driver` create a new session and return resulting session-id string.
defaults (clj) WebDriver driver type specific option defaults.
defaults-global (clj) WebDriver global option defaults.
delete-cookie (clj) Have `driver` delete cookie with cookie `cookie-name`.
delete-cookies (clj) Have `driver` delete all browser cookies for all domains.
delete-session (clj) Have `driver` delete the active session.
disabled? (clj) Opposite of [[enabled?]].
disconnect-driver (clj) Returns new `driver` after disconnecting from a running WebDriver process.
dismiss-alert (clj) Have `driver` cancel open alert dialog.
displayed-el? (clj) Return true if `driver` finds `el` is displayed/visible.
displayed? (clj) Return true if element found by `driver` with query `q` is effectively displayed.
doto-wait (clj) The same as `clojure.core/doto` but prepends each form with ([[wait]] `seconds`) clause.
double-click (clj) Have `driver` double-click on element found by query `q`.
double-click-el (clj) Have `driver` double-click on element `el`.
drag-and-drop (clj) Have `driver` perform a drag and drop from element found by `q-from` to element found by `q-to`: 1.
driver? (clj) Return true if `driver` is of `type` (e.g.
edge (clj) Launch and return an Edge driver.
edge-headless (clj) Launch and return a headless Edge driver.
edge? (clj) Returns true if a `driver` is Edge.
el->ref (clj) Return map representing an element reference for WebDriver.
enabled-el? (clj) Return true if `driver` determines element `el` is enabled.
enabled? (clj) Returns true if `driver` determines element found by query `q` is enabled.
execute (clj) Return response from having `:driver` execute HTTP `:method` request to `:path` with body `:data`.
exists? (clj) Return true if `driver` can find element via query `q`.
fill (clj) Have `driver` fill input element found by `q` with `text` (and optionally `more` text).
fill-active (clj) Have `driver` fill active element with `text` (and optionally `more` text).
fill-el (clj) Have `driver` fill input element `el` with `text` (and optionally `more` text).
fill-human (clj) Have `driver` fill element found by `q` with `text` as if it were a real human using `opts`.
fill-human-el (clj) Have `driver` fill element `el` with `text` as if it were a real human using `opts`.
fill-human-multi (clj) Have `driver` fill multiple elements as if it were a real human being via `q-text` using `opts`.
fill-multi (clj) Have `driver` fill multiple inputs via `q-text`.
firefox (clj) Launch and return a Firefox driver.
firefox-headless (clj) Launch and return a headless Firefox driver.
firefox? (clj) Returns true if a `driver` is Firefox.
forward (clj) Have `driver` navigate forward in the browser's history.
get-alert-text (clj) Have `driver` return text string from alert dialog (if present).
get-cookie (clj) Have `driver` return first cookie matching `cookie-name`.
get-cookies (clj) Have `driver` return a vector of current browser cookies.
get-element-attr (clj) Have `driver` return value for `attribute` of element found by `q`.
get-element-attr-el (clj) Have `driver` return value for `attribute` of element `el`, or `nil` if attribute does not exist.
get-element-attrs (clj) Have `driver` return values for `attributes` of element found by query `q`.
get-element-box (clj) Have `driver` return map describing a bounding box for element found by query `q`.
get-element-css (clj) Have `driver` return the CSS style `property` of element found by query `q`.
get-element-css-el (clj) Have `driver` return value for CSS style `property` of element `el`, or `nil` if property does not exist.
get-element-csss (clj) Have `driver` return CSS style properties matching `properties` of element found by query `q`.
get-element-inner-html (clj) Have `driver` return inner text of element found by query `q`.
get-element-inner-html-el (clj) Have `driver` return inner text of element `el`.
get-element-location (clj) Have `driver` return map of `:x` `:y` offset, in pixels of element found by query `q`.
get-element-location-el (clj) Have `driver` return map of `:x` `:y` offset, in pixels of element `el`.
get-element-properties (clj) Have `driver` return a vector of property values matching `properties` of element found by query `q`.
get-element-property (clj) Have `driver` value for `property` of element found by query `q`.
get-element-property-el (clj) Have `driver` return value for `property` of element `el`.
get-element-size (clj) Have `driver` return map of `:width` and `:height`, in pixels, of element found by query `q`.
get-element-size-el (clj) Have `driver` return map of `:width` and `:height`, in pixels, of element `el`.
get-element-tag (clj) Have `driver` return tag name of element found by query `q`.
get-element-tag-el (clj) Have `driver` return tag name of element `el`.
get-element-text (clj) Have `driver` return inner text of element found by query `q`.
get-element-text-el (clj) Have `driver` return text of element `el`.
get-element-value (clj) Have `driver` return the value of element found by query `q`.
get-element-value-el (clj) Have `driver` return the value of element `el`.
get-hash (clj) Have `driver` fetch the current hash fragment for the current page (nil when not set).
get-implicit-timeout (clj) Returns `driver` timeout in seconds to find elements on the page.
get-log-types (clj) Have `driver` return a vector of log types the browser supports.
get-logs (clj) Have `driver` return Javascript console log entries.
get-page-load-timeout (clj) Returns `driver` timeout in seconds for loading a page.
get-script-timeout (clj) Returns `driver` timeout in seconds for executing JavaScript.
get-scroll (clj) Have `driver` return the current scroll position as a map of `:x` `:y`.
get-source (clj) Have `driver` return browser's current page HTML markup as a string.
get-status (clj) Returns `driver` status.
get-title (clj) Have `driver` return the current page title.
get-url (clj) Have `driver` return the current url location as a string.
get-user-agent (clj) Have `driver` return the browser `User-Agent`.
get-window-handle (clj) Have `driver` return the current browser window handle string.
get-window-handles (clj) Have `driver` return a vector of all browser window handle strings.
get-window-position (clj) Have `driver` return the current window position, in pixels relative to the screen, as a map of `:x` and `:y`.
get-window-size (clj) Have `driver` return the current browser window size in pixels as a map of `:width` and `:height`.
go (clj) Have `driver` open `url` in the current browser window.
has-alert? (clj) Returns true if `driver` sees an open alert dialog.
has-class-el? (clj) Returns true if `driver` finds that element `el` includes `class` in its class attribute.
has-class? (clj) Returns true if `driver` finds that element found by query `q` includes `class` in its class attribute.
has-no-alert? (clj) Opposite of [[has-alert?]].
has-no-class? (clj) Opposite of [[has-class?]].
has-text? (clj) Return true if `driver` finds that `text` appears anywhere on a page.
headless? (clj) Returns true if a `driver` is in headless mode (without UI window).
intersects? (clj) Return true if bounding boxes found by `driver` for element found by query `q1` intersects element found by query `q2`.
invisible? (clj) Oppsite of [[visible?]].
js-async (clj) Return result of `driver` executing JavaScript `script` with `args` asynchornously in the browser.
js-execute (clj) Return result of `driver` executing Javascript `script` with `args` synchronously in the browser.
js-localstorage-clear (clj) Have `driver` clear local storage.
left-click (clj) Have `driver` click the left mouse button at current mouse pointer position.
left-click-on (clj) Have `driver` move mouse pointer to element found by `q` then click left mouse button.
make-action-input (clj) Return a new action input source of `type`.
make-key-input (clj) Return a new key input source.
make-mouse-input (clj) Return a new mouse input source.
make-pen-input (clj) Return a new pen input source.
make-pointer-input (clj) Return a new pointer input source of pointer `type`.
make-touch-input (clj) Return a new touch input source.
map->RemoteFile (clj)
maximize (clj) Have `driver` make the current browser window as large as your screen allows.
middle-click (clj) Have `driver` click the middle mouse button at current mouse pointer position.
middle-click-on (clj) Have `driver` move mouse pointer to element found by `q` then click middle mouse button.
mouse-btn-down (clj) Have `driver` press down on the button of the virtual mouse.
mouse-btn-up (clj) Have `driver` release button of the virtual mouse.
mouse-click (clj) Have `driver` click `mouse-button` at current mouse pointer position.
mouse-click-on (clj) Have `driver` move mouse pointer to element found by `q` then click `mouse-button`.
mouse-move-to (clj) Have `driver` moves the virtual mouse pointer either to an element found by query `q` or to a specific by `x` and `y` pixel offset within the browser window.
perform-actions (clj) Have `driver` perform actions defined in `input` source(s) simultaneously.
phantom (clj) Launch and return a Phantom.js driver.
phantom? (clj) Returns true if a `driver` is Phantom.js.
print-page (clj) Have `driver` print current HTML page to `file` in PDF format.
query (clj) Use `driver` to find and return the first element on current page matching `q`.
query-all (clj) Use `driver` to return a vector of all elements on current page matching `q`.
query-tree (clj) Use `driver` to return a collection of all elements matching piped queries.
quit (clj) Have `driver` close the current session, then, if Etaoin launched it, kill the WebDriver process.
rand-uuid (clj) Return a random UUID string.
refresh (clj) Have `driver` reload the content in the current browser window.
release-actions (clj) Have `driver` clear any active action state.
reload (clj) Alias for [[refresh]].
remote-file (clj) Wraps `remote-file-path` for use with [[upload-file]] to avoid local file existence check.
right-click (clj) Have `driver` click the right mouse button at current mouse pointer position.
right-click-on (clj) Have `driver` move mouse pointer to element found by `q` then click right mouse button.
running? (clj) Return true if `driver` seems accessable via its `:host` and `:port`.
safari (clj) Launch and return a Safari driver.
safari? (clj) Returns true if a `driver` is Safari.
screenshot (clj) Have `driver` save a PNG format screenshot of the current page to `file`.
screenshot-element (clj) Have `driver` save a PNG format screenshot of the element found by query `q` to `file`.
scroll (clj) Have `driver` scroll page to `x` `y` absolute pixel coordinates.
scroll-bottom (clj) Have `driver` scroll vertically to bottom of the page keeping current horizontal position.
scroll-by (clj) Have `driver` scroll by `x` `y` relative pixel offset.
scroll-down (clj) Have `driver` scroll the page down by `offset` pixels.
scroll-left (clj) Have `driver` scroll the page left by `offset` pixels.
scroll-offset (clj) Default scroll offset in pixels.
scroll-query (clj) Have `driver` scroll to the element found by query `q`.
scroll-right (clj) Have `driver` scroll the page right by `offset` pixels.
scroll-top (clj) Have `driver` scroll vertically to the top of the page keeping current horizontal position.
scroll-up (clj) Have `driver` scroll the page up by `offset` pixels.
select (clj) Convenience function to have `driver` select first option that includes `text` for select element found by query `q`.
selected-el? (clj) Return true if `driver` determines element `el` is selected.
selected? (clj) Return true if `driver` determines element found by query `q` is selected.
set-cookie (clj) Have `driver` set a `cookie`.
set-hash (clj) Have `driver` set a new `hash` fragment for the current page.
set-implicit-timeout (clj) Sets `driver` timeout `seconds` to find elements on the page.
set-page-load-timeout (clj) Sets `driver` timeout `seconds` for loading a page.
set-script-timeout (clj) Sets `driver` timeout `seconds` for executing JavaScript.
set-window-position (clj) Have `driver` set the `x` `y` position of the current browser window.
set-window-size (clj) Have `driver` set the `width` and `height` in pixels of the current window.
stop-driver (clj) Returns new `driver` after killing its WebDriver process.
submit (clj) Have `driver` submit a form by sending the enter key to input element found by query `q`.
supports-logs? (clj) Returns true if `driver` supports getting console logs.
switch-frame (clj) Have `driver` switch context to (i)frame element found by query `q`.
switch-frame-first (clj) Have `driver` switch context to the first (i)frame.
switch-frame-parent (clj) Have `driver` switch context to the parent of the current (i)frame.
switch-frame-top (clj) Have `driver` switch context the main page.
switch-window (clj) Have `driver` switch to browser window with `handle`.
switch-window-next (clj) Have `driver` switch to next browser window.
touch-down (clj) Have `driver` touch down - on element found by query `q` - or `x` `y` coordinate See [[query]] for details on `q`.
touch-move (clj) Have `driver` touch move - on element found by query `q` - or `x` `y` coordinate See [[query]] for details on `q`.
touch-tap (clj) Have `driver` touch tap element found by query `q`.
touch-up (clj) Have `driver` touch up - on element found by query `q` - or `x` `y` coordinate See [[query]] for details on `q`.
upload-file (clj) Have `driver` attach a file `path` to a file input field element found by query `q`.
use-css (clj) Return new `driver` with default locator set to CSS.
use-xpath (clj) Return new `driver` with default locator set to XPath.
visible? (clj) Return true if element found by `driver` with query `q` exists and is effectively displayed.
wait (clj) Sleep for `seconds`.
wait-absent (clj) Waits until `driver` determines element is not found by `q` (is [[absent?]]).
wait-disabled (clj) Waits until `driver` determines element found by `q` is [[disabled?]].
wait-enabled (clj) Waits until `driver` determines element found by `q` is [[enabled?]].
wait-exists (clj) Waits until `driver` finds element [[exists?]] via `q`.
wait-has-alert (clj) Waits until `driver` finds page [[has-alert?]].
wait-has-class (clj) Waits until `driver` finds element via `q` [[has-class?]] `class`.
wait-has-text (clj) Waits until `driver` finds element via `q` with `text` anywhere inside it (including inner HTML).
wait-has-text-everywhere (clj) Waits until `driver` finds `text` anywhere on the current page.
wait-invisible (clj) Waits until `driver` determines element found by `q` is [[invisible?]].
wait-predicate (clj) Wakes up every `:interval` seconds to call `pred`.
wait-running (clj) Waits until `driver` is reachable via its host and port via [[running?]].
wait-visible (clj) Waits until `driver` determines element found by `q` is [[visible?]].
when-chrome (clj) Executes `body` when browser `driver` is Chrome.
when-edge (clj) Executes `body` when browser `driver` is Edge.
when-firefox (clj) Executes `body` when browser `driver` is Firefox.
when-headless (clj) Executes `body` when the `driver` is in headless mode.
when-not-chrome (clj) Executes `body` when browser `driver` is NOT Chrome.
when-not-drivers (clj) Executes `body` when browser `driver` is NOT in `browsers`, ex: `#{:chrome :safari}`.
when-not-edge (clj) Executes `body` when browser `driver` is NOT Edge.
when-not-firefox (clj) Executes `body` when browser `driver` is NOT Firefox.
when-not-headless (clj) Executes `body` when browser `driver` is NOT in headless mode.
when-not-phantom (clj) Executes `body` when browser `driver` is NOT Phantom.js.
when-not-predicate (clj) Executes `body` when `predicate` returns falsy.
when-not-safari (clj) Executes `body` when browser `driver` is NOT Safari.
when-phantom (clj) Executes `body` when browser `driver` is Phantom.js.
when-predicate (clj) Executes `body` when `predicate` returns truthy.
when-safari (clj) Executes `body` when browser `driver` is Safari.
with-chrome (clj) Executes `body` with a Chrome driver session bound to `bind`.
with-chrome-headless (clj) Executes `body` with a headless Chrome driver session bound to `bind`.
with-css (clj) Execute `body` with default locator set to CSS.
with-driver (clj) Executes `body` with a driver session of `type` (e.g.
with-edge (clj) Executes `body` with an Edge driver session bound to `bind`.
with-edge-headless (clj) Executes `body` with a headless Edge driver session bound to `bind`.
with-firefox (clj) Executes `body` with a Firefox driver session bound to `bind`.
with-firefox-headless (clj) Executes `body` with a headless Firefox driver session bound to `bind`.
with-frame (clj) Excecute `body` within context of frame found via `driver` by query `q`.
with-http-error (clj) Executes `body` suppressing catching any exception that would normally occur due to HTTP non-success status when communicating with a WebDriver.
with-key-down (clj) Returns `input` source piped through `key` down, then presumably a `body` of more actions then a `key` up action.
with-mouse-btn (clj) Have `driver` press the virtual mouse button, execute `body`, then release the virtual mouse button.
with-phantom (clj) Executes `body` with an Phantom.JS driver session bound to `bind`.
with-pointer-btn-down (clj) Returns `input` source piped through `pointer-button` down action, then presumably a `body` of more actions then a pointer `pointer-button` up action.
with-pointer-left-btn-down (clj) Returns `input` source piped through pointer left button down action, then presumably a `body` of more actions then a pointer left button up action.
with-postmortem (clj) Executes `body` with postmortem handling.
with-safari (clj) Executes `body` with a Safari driver session bound to `bind`.
with-screenshots (clj) Have `driver` save a PNG imge screenshot to `dir` after each form in `body` is executed.
with-script-timeout (clj) Execute `body` temporarily setting `driver` to timeout `seconds` for executing JavaScript.
with-wait (clj) Execute `body` waiting `seconds` before each form.
with-wait-interval (clj) Execute `body` with a [[*wait-interval*]] of `seconds` (which can be fractional).
with-wait-timeout (clj) Execute `body` with a [[*wait-timeout*]] of `seconds`.
with-xpath (clj) Execute `body` with default locator set to XPath.