arce-appium-driver
v0.1.0
Published
Experimental driver for appium.
Downloads
1
Maintainers
Readme
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:
- [x]
driver.findElement()
by:id
,class
,css selector
,xpath
,automationId
- [x]
driver.findElements()
by:id
,class
,css selector
,xpath
,automationId
- [x]
element.findElement()
by:id
,class
,css selector
,xpath
,automationId
- [x]
element.findElements()
by:id
,class
,css selector
,xpath
,automationId
- [x]
Element:
- [x]
driver.getActiveElement()
- [x]
element.active()
- [x]
element.getAttribute()
- [x]
element.getProperty()
- [x]
element.getCssProperty()
- [x]
element.click()
- [x]
element.clear()
- [x]
element.setValue()
- [x]
element.setValueImmediate()
- [x]
element.elementSelected()
- [x]
element.getText()
- [x]
element.getName()
- [x]
element.getElementRect()
- [x]
element.elementEnabled()
- [x]
element.elementDisplayed()
- [x]
Execute:
- [x]
execute()
(expected to be a valid arce command script for now) - [x]
executeAsync()
(expected to be a valid arce command script for now)
- [x]
Navigate:
- [x]
setUrl
- [x]
getUrl
- [x]
back
- [x]
forward
- [x]
refresh
- [x]
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)
- [ ]
License
MIT