API Overview - Etaoin


Pure Clojure Webdriver protocol implementation.



etaoin.api

Detailed API documentation
The API below was written regarding to the source code
of different Webdriver implementations. All of them partially
differ from the official W3C specification.

The standard:
https://www.w3.org/TR/webdriver/

Chrome:
https://github.com/bayandin/chromedriver/

Firefox (Geckodriver):
https://github.com/mozilla/geckodriver
https://github.com/mozilla/webdriver-rust/

Phantom.js (Ghostdriver)
https://github.com/detro/ghostdriver/blob/
Contents: absent? accept-alert back boot-driver child children chrome chrome-headless chrome? clear clear-el click click-visible close-window connect-driver connectable? create-driver create-session delete-cookie delete-cookies disconnect-driver discover-port dismiss-alert dispatch-driver displayed-el? displayed? doto-wait double-click drag-and-drop el->ref enabled? execute exists? fill fill-active fill-el fill-human fill-multi firefox firefox-headless firefox? forward get-alert-text get-cookie get-cookies get-element-attr get-element-attrs get-element-box get-element-css get-element-csss get-element-inner-html get-element-inner-html-el get-element-properties get-element-property get-element-size get-element-tag get-element-tag-el get-element-text get-element-text-el get-element-value get-hash get-implicit-timeout get-log-types get-logs get-page-load-timeout get-script-timeout get-scroll get-source get-status get-title get-url get-window-handle get-window-handles get-window-position get-window-size go has-alert? has-class? has-no-alert? has-no-class? has-text? headless? intersects? invisible? join-path js-async js-execute make-url maximize mouse-btn-down mouse-btn-up mouse-move-to phantom phantom? postmortem-handler query query-all quit refresh run-driver running? safari safari? screenshot scroll scroll-bottom scroll-by scroll-down scroll-left scroll-offset scroll-query scroll-right scroll-top scroll-up set-cookie set-hash set-implicit-timeout set-page-load-timeout set-script-timeout set-window-position set-window-size stop-driver submit supports-logs? switch-frame switch-frame* switch-frame-first switch-frame-parent switch-frame-top switch-window upload-file visible? wait wait-absent wait-disabled wait-enabled wait-exists wait-has-alert wait-has-class wait-has-text wait-invisible wait-predicate wait-visible when-chrome when-firefox when-headless when-not-chrome when-not-firefox when-not-headless when-not-phantom when-not-safari when-phantom when-predicate when-safari with-chrome with-chrome-headless with-driver with-firefox with-firefox-headless with-frame with-mouse-btn with-phantom with-postmortem with-safari with-script-timeout with-wait


etaoin.client

Detailed API documentation

  
  
  
  Contents:
  default-timeout 


etaoin.driver

Detailed API documentation
Some utilities to work with driver's data structure.

Note: the functions below take not an atom but pure map
to be used with swap!. Our further goal is to reduce atom usage
everywhere it is possible.

Links for development:

Firefox command line flags:
/Applications/Firefox.app/Contents/MacOS/firefox-bin --help

Chrome binary path:
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome

Chrome CLI args:
https://peter.sh/experiments/chromium-command-line-switches/

Chrome capabilities:
https://sites.google.com/a/chromium.org/chromedriver/capabilities

Firefox capabilities:
https://github.com/mozilla/geckodriver/#firefox-capabilities

Firefox profiles:
https://support.mozilla.org/en-US/kb/profiles-where-firefox-stores-user-data

Safari endpoints
https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/WebDriverEndpointDoc/Commands/Commands.html

JSON Wire protocol (obsolete)
https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol

Selenium Python source code for Firefox
https://github.com/SeleniumHQ/selenium/blob/master/py/selenium/webdriver/firefox/options.py
Contents: set-browser-log-level set-options-args set-path set-port set-url set-window-size


etaoin.keys

Detailed API documentation
https://www.w3.org/TR/webdriver/#keyboard-actions
Contents:


etaoin.legacy

Detailed API documentation
A namespace that injects some missing functions
for legacy Clojure versions.

Clojure String source code:
https://github.com/clojure/clojure/blob/master/src/clj/clojure/string.clj

The `with-ns` macro was taken from SO:
https://stackoverflow.com/questions/27343707
Contents:


etaoin.proc

Detailed API documentation

  
  
  
  Contents:
  


etaoin.query

Detailed API documentation
A module to deal with querying elements.
Contents: ->Query map->Query Query


etaoin.util

Detailed API documentation

  
  
  
  Contents:
  defmethods random-port 


etaoin.xpath

Detailed API documentation
A special module to work with XPath language.
Contents:
Logo & site design by Tom Hickey.
Clojure auto-documentation system by Tom Faulhaber.