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@nextMake 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-driverAnd start the appium server:
appium serverThen 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 viahtml2canvasnpm package orgetUserMediaAPI) -
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