etaoin.driver

Some utilities to work with driver's data structure.

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

Edge capabilities and endpoints
https://docs.microsoft.com/en-us/microsoft-edge/webdriver

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

append-args

(append-args args extra)

dispatch-driver

(dispatch-driver driver & _)

get-args

(get-args driver)

is-headless?

multimethod

(is-headless? driver)

options-name

multimethod

prepend-args

(prepend-args args extra)

proxy->w3c

(proxy->w3c proxy)

set-args

(set-args driver args)

set-binary

multimethod

(set-binary driver binary)

set-browser-log-level

multimethod

(set-browser-log-level driver binary)
Sets browser logging level.

set-capabilities

(set-capabilities driver caps)

set-download-dir

multimethod

(set-download-dir driver path)

set-driver-log-level

multimethod

set-headless

multimethod

(set-headless driver)

set-load-strategy

(set-load-strategy driver strategy)

set-options-args

(set-options-args driver args)
Adds command line arguments for a browser binary (not a driver).

set-path

(set-path driver path)
Sets path to the driver's binary file.

set-perf-logging

(set-perf-logging driver & [{:keys [level network? page? categories interval], :or {level :all, network? true, page? false, categories [:devtools.network], interval 1000}}])
categories example:
[:browser :devtools :devtools.timeline]

set-port

multimethod

(set-port driver port)
Updates driver's map with the given port added to the args.

set-prefs

multimethod

(set-prefs driver prefs)

set-profile

multimethod

set-proxy

(set-proxy driver proxy)

set-url

multimethod

(set-url driver url)
Sets the default URL that the browser should open by default.

set-user-agent

multimethod

(set-user-agent driver user-agent)
Set User-Agent header for the driver.

set-window-size

multimethod

(set-window-size driver w h)
Adds browser's command line arguments for setting initial window size.