Automating Android Apps - Details
abstract
This page describes Android Automation in detail. If you wish to get a quick start, read Android Automation - Getting Started.
Features
- Supports running flows against a connected Android device or emulator using SDK 18 and above.
- Android Viewer and Record a steps allow easy interaction with the connected device.
- Scripts can be recorded from the Android Viewer and Object spy features are also available.
- Android Inbuilt action syntax is similar to Sahi Pro Inbuilt Actions for browser testing.
- Single Flowchart can interact with different modes like Browser, Desktop, Mobile etc.
Limitations
- Does not support testing Android device or emulator below SDK 18. (Run
adb shell getprop ro.build.version.sdk
to verify) - Does not support run in parallel from the editor, if only one device is connected.
Android Viewer
Android Viewer allows an end user to view the Android device/emulator screen on a Desktop browser. The user can launch the Controller and then identify Android elements by pressing the CTRL key and hovering the mouse over the element.This section details how to use the Android Viewer.
- On the Flowcharts window, click on the dropdown arrow next to Launch and then select
Launcher Settings
. Launcher Settings
dialog opens.- Select the Mode: Android
- Now select the device from the
Device Info
dropdown
SpecifyApplication Package Name:
com.sahipro.SahiTestApp - Click on Launch to launch the Application.
- This brings up Android Viewer in system's default browser. If the user wants to launch Android Viewer in a specific browser then, open that Sahi browser and then click on the Android Viewer link from the start page, this brings up Android Viewer in that browser.
Device Info:
shows the list of the connected device to the systemApplication Package Name:
allows an end user to start an application by it's package name which is already installed in that device. Leave it blank if you wants to start the device session in its current state of the screen.- Make sure that the device is connected through a USB cable or over Wi-Fi. Click on
Connect Session
. If the connection is successful, you will see the device screenshot in a short while. - When some action is performed from the Android Viewer, the screenshot will be refreshed a few times, to display the latest device state.
However, if actions are performed on the device manually, the screenshot will not get refreshed. Click on the
Refresh
icon manually to refresh the screenshot. - One can interact with the device from the Android Viewer itself without launching the Controller.
- Launch the Controller by ALT and Double clicking on the android device.
- You can now start identifying elements by pressing the CTRL key and hovering the mouse over elements on the Desktop screenshot. You will notice the Accessor textbox on the Controller, showing the accessor for the element. The dropdown displays the alternatives for the accessor.
Description of the image labeling:
infoNote: if device list doesn't contains the connected device, then click on the refresh button next to devices dropdown.
Android Viewer Actions:
![](../assets/images/flowcharts/mobile/android/quick_guide_android.png)
is used to swipe up on the screen.
is used to swipe down on the screen.
is used to swipe left on the screen.
is used to swipe right on the screen.
is used to call up the menu of the app on the display.
will press enter in the text field.
is used to open search field (if present) within an application.
will show all recent open apps.
is used for navigating to the home screen.
simulates the back action.
Screenshot Outline View
Security restrictions may prohibit Android Viewer from capturing the screen shot to be displayed. In such a case, you can use the Screenshot Outline View feature to toggle the outline view.For example, lets assume that for the below screen, Android Viewer is unable to take the screenshot. To enable the outline view, check the highlighted checkbox in Android Viewer.
![](../assets/images/using-sahi/mobile/android/android-screen-without-outline.png)
![](../assets/images/using-sahi/mobile/android/android-screen-with-outline.png)
info
A few things to note...
- If the app orientation changes from portrait to landscape or vice versa, do a manual refresh by clicking on the Refresh icon, to view the screenshot correctly.
- If you resize the Android Viewer page, do a manual refresh by clicking on the Refresh icon, to view the screenshot correctly.
- Do not disconnect (physically or via wifi) the device before disconnecting the session. In case you do so and on reconnecting you find that
Connect Session
does not seem to connect the device, please have a look at the Sahi console. If the Sahi console indicates that you should reconnect the device, please do so. - Closing the Android Viewer browser does NOT disconnect the session. So always disconnect the session before closing the browser. If you fail to do so and open the Android Viewer again, it will show the session to be in a connected state.
- As of now, Android Viewer supports only one device at a time. The device has to be connected to the machine that runs Sahi.
Configure Android Devices/Emulators
- Click on the
All Settings
button on the Dashboard. It will open up all Settings dialog. - Click on the
Sahi Pro Settings
button. It will open up Configure Sahi Pro page.
android_devices.xml
on the left. This will open page similar to image given below.
![](../assets/images/using-sahi/mobile/android/configure-android-devices.png)
androidDevice Node
<androidDevices>
<!-- Moto device with 2 capacity -->
<androidDevice>
<name>Moto</name>
<displayName>Moto G5</displayName>
<deviceId>XXXX</deviceId>
<deviceId>YYYY</deviceId>
</androidDevice>
</androidDevices>
Element | Value |
name | Key by which this androidDevice will be referred. This can be any value without spaces. |
displayName | Better name displayed in Android Viewer. |
deviceId | Id of the device, multiple Id can be added under same name.
you can get the Device Id by executing this command
|
infoFor example, Two devices are configured under
Moto
. For parallel playback of data driven suite on this two devices, select Moto
as Android Device from editor (or specify Moto
as Android Device in ANT target).
Scripts will be distributed in two devices.
Automating a Keyword
This is similar to automating a Sahi Pro Flowcharts keyword for normal browser testing.Automate
, click on Start Record
button, Actions done on the application in Android device are recorded automatically.
-
A. You can use Click, Set, Assert, choose 'Other Actions' to perform an action on the Windows Desktop Application.
B. You will need to record these steps explicitly by clicking on 'Add Step'.
![](../assets/images/flowcharts/mobile/android/controller-android.png)
Playback
- On the
Automate
dialog click onRun
button. - The
Run Settings
dialog opens. Select the ModeAndroid
if we did not mentioned in the scipt and clickRUN
.
infoWhen the flow is being played back, you CANNOT see the playback happening on the Android Viewer. The Android Viewer does not get refreshed during playback.
Automating Hybrid App
Pre-requisites
- Android Device must be connected on the same network in which Sahi Pro is running.
- Configure the proxy in Android Device.
If the screen is displaying hybrid contents then there will be one checkbox
Enable web view identification
.- Check the checkbox to identify/record hybrid elements as Web.
- Press the CTRL key and mouse over the hybrid element.
- Element's accessor will be displayed in Flowchart Controller.
- To automate the hybrid app, perform the actions directly from Android Device.
info
NOTE: To identify/record the hybrid element as native, uncheck the checkbox in Android Viewer.
Playback
- On the
Automate
dialog click onRun
button. - The
Run Settings
dialog opens. Select the ModeAndroid
if we did not mentioned in the scipt and clickRUN
.
infoWhen the flow is being played back, you CANNOT see the playback happening on the Android Viewer. The Android Viewer does not get refreshed during playback.
More Info
Android Accessor APIsMobile APIs