Skip to content

andreas-schoch/arce-appium-driver

Repository files navigation

ARCE Appium Driver

Work-in-Progress...

An experimental "browser-agnostic" appium driver.

In most scenarios you should probably use another driver. This is more of a "last resort" solution.

(TODO explain use-cases in a bit more detail.)

Usage

To use this driver, Appium v2 needs to be installed first.

npm install -g appium@next

Make this driver available for automation:

# npm release
appium driver install --source=npm arce-appium-driver
# github repository
appium driver install --source=github andreas-schoch/arce-appium-driver
# local repository
appium driver install --source=local /path/to/git-repos/arce-appium-driver

And start the appium server:

appium server

Then within your appium client of choice, use the following capabilities:

Capability Name Description
automationName Must be set to ARCE.
arce:sslCert Path to ssl cert. E.g. ./example.crt (Only if you want ArceServer proxy to run via https).
arce:sslKey Path to ssl key. E.g. ./example.key (Only if you want ArceServer proxy to run via https).
arce:port Which port the ArceServer proxy should use (default: 12000)

TODO

  • Find:

    • driver.findElement() by: id, class, css selector, xpath, automationId
    • driver.findElements() by: id, class, css selector, xpath, automationId
    • element.findElement() by: id, class, css selector, xpath, automationId
    • element.findElements() by: id, class, css selector, xpath, automationId
  • Element:

    • driver.getActiveElement()
    • element.active()
    • element.getAttribute()
    • element.getProperty()
    • element.getCssProperty()
    • element.click()
    • element.clear()
    • element.setValue()
    • element.setValueImmediate()
    • element.elementSelected()
    • element.getText()
    • element.getName()
    • element.getElementRect()
    • element.elementEnabled()
    • element.elementDisplayed()
  • Execute:

    • execute() (expected to be a valid arce command script for now)
    • executeAsync() (expected to be a valid arce command script for now)
  • Navigate:

    • setUrl
    • getUrl
    • back
    • forward
    • refresh
  • Cookies:

    • getCookies()
    • getCookie()
    • setCookie()
    • deleteCookie()
    • deleteCookies()
  • Window (The strike-through commands can likely only be supported to a limited extent, or not at all, via ARCE):

    • getWindowRect()
    • setWindow()
    • createNewWindow()
    • closeWindow()
    • setWindowRect()
    • maximizeWindow()
    • minimizeWindow()
    • fullScreenWindow()
    • getWindowHandle()
  • Action (A lot of the possible actions chains cannot be fully supported via ARCE.):

    • performActions()
    • releaseActions()
  • Screenshot:

    • element.getElementScreenshot() (Can maybe be supported via html2canvas npm package or getUserMedia API)
    • driver.getScreenshot()
  • Timeout (Not sure yet which ones are useful or expected to be implemented):

    • driver.setNewCommandTimeout()
    • driver.implicitWait()
    • driver.setImplicitWait()
    • driver.implicitWaitForCondition()
    • driver.getTimeouts()
    • driver.implicitWaitW3C()
    • driver.pageLoadTimeoutW3C()
    • driver.scriptTimeoutW3C()
    • driver.newCommandTimeout()
    • driver.parseTimeoutArgument()

    (List incomplete. A few misc commands omitted)

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published