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.)
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 ) |
-
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 viahtml2canvas
npm package orgetUserMedia
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)
-
MIT