0.1.0 • Published 3 years ago
arce-appium-driver v0.1.0
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@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) |
TODO
- Find:
driver.findElement()by:id,class,css selector,xpath,automationIddriver.findElements()by:id,class,css selector,xpath,automationIdelement.findElement()by:id,class,css selector,xpath,automationIdelement.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:
setUrlgetUrlbackforwardrefresh
- 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)
License
MIT