-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
74 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,83 @@ | ||
appium-selendroid-driver | ||
=================== | ||
## appium-selendroid-driver | ||
|
||
Work in progress, stay tuned! | ||
This driver is the Appium interface to the [Selendroid](http://selendroid.io/) test automation framework. From the Appium server it is requested by specifying the desired capability `automationName` of `Selendroid` when starting a session. | ||
|
||
## Watch | ||
|
||
### Using with Appium server | ||
|
||
Most of the Selenium methods are handled by the Selendroid framework itself. This package simply handles the setting up of the session by instrumenting the application and making sure that both the application and the Selendroid server are signed with the same keys. It then provides a method for proxying through the [appium-jsonwp-proxy](https://github.com/appium/jsonwp-proxy) to the Selendroid server running on the device. | ||
|
||
`proxyReqRes (request, response)` | ||
|
||
Some methods, however, are handled locally, if they either don't work in the Selendroid implementation, or they are Appium additions that are not currently supported by Selendroid. | ||
|
||
#### Methods not proxied to Selendroid | ||
|
||
The following methods are implemented by the `appium-selendroid-driver`, either in full or by appropriately fixing state and then proxying to the Selendroid server. | ||
|
||
| Methods | | ||
|---------------------------------------------------------------------------| | ||
| `activateIMEEngine (engine)` | | ||
| `availableIMEEngines ()` | | ||
| `background (seconds)` | | ||
| `closeApp ()` | | ||
| `deactivateIMEEngine ()` | | ||
| `endCoverage (intent, path)` | | ||
| `getActiveIMEEngine ()` | | ||
| `getContexts ()` | | ||
| `getCurrentActivity ()` | | ||
| `getCurrentContext ()` | | ||
| `getLog (type)` | | ||
| `getLogTypes ()` | | ||
| `getNetworkConnection ()` | | ||
| `getSettings ()` | | ||
| `getStrings (language, stringFile)` | | ||
| `hideKeyboard (strategy, key, keyCode, keyName)` | | ||
| `installApp (appPath)` | | ||
| `isAppInstalled (bundleId)` | | ||
| `isIMEActivated ()` | | ||
| `isLocked ()` | | ||
| `keyevent (keycode, metastate)` | | ||
| `keys (value)` | | ||
| `launchApp ()` | | ||
| `lock (seconds)` | | ||
| `longPressKeyCode (keycode, metastate)` | | ||
| `mobileRotation (x, y, radius, rotation, touchCount, duration, element)` | | ||
| `mobileShake ()` | | ||
| `openNotifications ()` | | ||
| `performMultiAction (actions, elementId)` | | ||
| `pressKeyCode (keycode, metastate)` | | ||
| `pullFile (path)` | | ||
| `pullFolder (path)` | | ||
| `pushFile (path, data)` | | ||
| `receiveAsyncResponse (response)` | | ||
| `removeApp (appId, bundleId)` | | ||
| `replaceValue (value)` | | ||
| `reset ()` | | ||
| `setContext (name)` | | ||
| `setGeoLocation (location)` | | ||
| `setNetworkConnection (type)` | | ||
| `setValue (value)` | | ||
| `setValueImmediate (value)` | | ||
| `startActivity (appPackage, appActivity)` | | ||
| `toggleData ()` | | ||
| `toggleFlightMode ()` | | ||
| `toggleLocationServices ()` | | ||
| `toggleWiFi ()` | | ||
| `unlock ()` | | ||
| `updateSettings (settings)` | | ||
|
||
|
||
### Working on the package | ||
|
||
#### Watch | ||
|
||
``` | ||
npm run watch | ||
gulp watch | ||
``` | ||
|
||
## Test | ||
#### Test | ||
|
||
``` | ||
npm test | ||
gulp once | ||
``` |