Selendroid is based on the Android instrumentation framework, and therefore only testing one app is supported. Selendroid contains four major components:
Below you can see an overview about the architecture:
The selendroid-standalone-0.17.0.jar contains the standalone-server, selendroid-server and the selendroid-client driver.
Selendroid-server is the main component responsible for the app automation.
The central driver class is
DefaultSelendroidDriver. This class is responsible for doing the common activities (like taking screenshots) for both contexts
The web view related driver class is
SelendroidWebDriver and native class is
Central driver class is
SelendroidStandaloneDriver that acts as a proxy between the selendroid-client and the selendroid-server and starts e.g. an Android emulator, creates for the app under test a customized selendroid-server and installs everything on the device. After the session is initialized on the device, subsequent requests are directly forwarded to the server on the device and the response routed back to the client.
For building Selendroid from scratch (only needed for commiters!) we use Maven 3.1.1 and you have to follow the following steps:
git clone https://github.com/selendroid/selendroid.git cd selendroid/ # this is needed to install manually the third party libs locally in your Maven repo. third-party/mvnInstall.sh mvn package
You will then be able to get your version of the standalone-server in selendroid-standalone/target/
mvn clean install
./runEnd2EndTests.sh. By default platform version 18 is used. But when starting the test script, the platform version can be be specified: e.g.:
We use travis-ci for building selendroid: https://travis-ci.org/selendroid/selendroid.
If you want to contribute to Selendroid, please fork the project and create pull requests. We will then evaluate the code and whether the contribution is suitable for merging into the main project. Please make sure that your code is formatted according to the Google Styleguide.
[IMPORTANT] We are only able to merge code into the code base, if you as a contributor have signed the Contributor License Agreement (CLA).
Debugging of the selendroid-server component is possible, please read the following instructions to setup your IDE.
If you have questions about your contribution, please join us on IRC: #selendroid on freenode.net.