Mobile Common APIs
This page lists the APIs common to both Android and iOS. These APIs have a _m prefix in camel case, example: _mSwipeLeft.
These APIs work on an Android device/simulator as well as on an iOS device/simulator.
These APIs work on an Android device/simulator as well as on an iOS device/simulator.
Action APIs
Activates an application.
Parameters
$bundleId | string | Android: Package name of the application iOS: Bundle ID of the application |
$force | boolean optional | Flag to specify whether to start an application with clean state. If not specified, default false will be used. |
Return Value
Modes Supported :
Raw Script
_mActivateApplication("com.android.settings", true);
_mActivateApplication("com.apple.Preferences");
Sahi Pro Classic API :_mActivateApplication
MLong Click simulates a user's long click on the given element.
Parameters
$element | Mobile Element | Mobile element to long click on |
$duration | integer optional | Duration for the long click. |
Return Value
Modes Supported :
Raw Script
_mLongClick(_button("Click Me"));
Sahi Pro Classic API :_mLongClick
Performs a pinch open gesture on the given element.
Parameters
$element | Mobile Element | Mobile element to perform pinch open action on. |
$percent | float | Android: Optional. The size of the pinch as a percentage of this element's size. If not specified, a value of 1.0 will be used. iOS: Needs to be specified. Scale of the pinch gesture. Has to be greater than 1 |
$speed | integer|float | Android: Optional. Speed to perform the pinch gesture, to be specified as an integer . If not specified, default value will be used specific to device. iOS: Needs to be specified. Velocity of the pinch in scale factor per second, to be specified as a float. Has to be greater than or equal to 0. |
Return Value
Modes Supported :
Raw Script
Android:
_mPinchOpen(_image("abc"));
_mPinchOpen(_image("abc"), 0.5, 2000);
iOS:
_mPinchOpen(_image("abc"), 1.5, 0.8);
Sahi Pro Classic API :_mPinchOpen
Performs a pinch close gesture on the given element.
Parameters
$element | Mobile Element | Mobile element to perform pinch close action on. |
$percent | float | Android: Optional. The size of the pinch as a percentage of this element's size. If not specified, a value of 1.0 will be used. iOS: Needs to be specified. Scale of the pinch gesture. Should be between 0 and 1 |
$speed | integer|float | Android: Optional. Speed to perform the pinch gesture, to be specified as an integer. If not specified, default value will be used specific to device. iOS: Needs to be specified. Velocity of the pinch in scale factor per second, to be specified as a float. Has to be lesser than 0. If a positive value is given, it will be converted to a negative value. |
Return Value
Modes Supported :
Raw Script
Android:
_mPinchClose(_image("abc"));
_mPinchClose(_image("abc"), 0.5, 2000);
iOS:
_mPinchClose(_image("abc"), 0.5, -0.8);
Sahi Pro Classic API :_mPinchClose
Brings up the Home screen.
Parameters
None |
Return Value
Modes Supported :
Raw Script
_mPressHome();
Sahi Pro Classic API :_mPressHome
Rotate the device screen based on the orientation type.
Parameters
$orientationType | Orientation type: can be PORTRAIT, PORTRAIT_UPSIDE_DOWN, LANDSCAPE_LEFT, LANDSCAPE_RIGHT |
Return Value
Modes Supported :
Raw Script
// Rotate the screen in portrait mode.
_mSetOrientation("PORTRAIT");
// Rotate the screen upside down in portrait mode.
_mSetOrientation("PORTRAIT_UPSIDE_DOWN");
// Rorate the screen to the left side.
_mSetOrientation("LANDSCAPE_LEFT");
// Rorate the screen to the right side.
_mSetOrientation("LANDSCAPE_RIGHT");
Sahi Pro Classic API :_mSetOrientation
Fetch APIs
Android: Returns the SDK Level of the Android device, for example: 21 for Lollypop, 20 for Kitkat etc.
iOS: Returns the iOS version of the iOS device, for example: 11.2.6
iOS: Returns the iOS version of the iOS device, for example: 11.2.6
Parameters
None |
Return Value
string | Android: SDK version of device/emulator. iOS: iOS version of device/simulator. |
Modes Supported :
Raw Script
var $version = _mOSVersion();
Sahi Pro Classic API :_mOSVersion
Returns device orientation, for example:
PORTRAIT
, PORTRAIT_UPSIDE_DOWN
, LANDSCAPE_LEFT
, LANDSCAPE_RIGHT
Parameters
None |
Return Value
string | Device orientation. |
Modes Supported :
Raw Script
var $orientation = _mGetOrientation();
Sahi Pro Classic API :_mGetOrientation
Swipe APIs
These APIs are used to induce swipe action on an element, for example: to delete an email from the list.
Swipes up on the element.
Parameters
$element | Mobile Element optional | Element to be swiped. If not specified, then it will consider the top most element to perform swipe gesture. |
$percent | float optional | Android: The length of the swipe as a percentage of the element's size. If not specified, a value of 1.0 will be used. iOS: It is not used. |
$speed | integer optional | Android: Speed to perform swipe. If not specified, default value will be used specific to device. iOS: It is not used. |
Return Value
Modes Supported :
Raw Script
_mSwipeUp();
_mSwipeUp(_mScrollView("Test"));
_mSwipeUp(_aRelativeLayout("Swipe Me"), 0.5, 1000);
Sahi Pro Classic API :_mSwipeUp
Swipes down on the element.
Parameters
$element | Mobile Element optional | Element to be swiped. If not specified, then it will consider the top most element to perform swipe gesture. |
$percent | float optional | Android: The length of the swipe as a percentage of the element's size. If not specified, a value of 1.0 will be used. iOS: It is not used. |
$speed | integer optional | Android: Speed to perform swipe. If not specified, default value will be used specific to device. iOS: It is not used. |
Return Value
Modes Supported :
Raw Script
_mSwipeDown();
_mSwipeDown(_mScrollView("Test"));
_mSwipeDown(_aRelativeLayout("Swipe Me"), 0.5, 1000);
Sahi Pro Classic API :_mSwipeDown
Swipes left on the element.
Parameters
$element | Mobile Element optional | Element to be swiped. If not specified, then it will consider the top most element to perform swipe gesture. |
$percent | float optional | Android: The length of the swipe as a percentage of the element's size. If not specified, a value of 1.0 will be used. iOS: It is not used. |
$speed | integer optional | Android: Speed to perform swipe. If not specified, default value will be used specific to device. iOS: It is not used. |
Return Value
Modes Supported :
Raw Script
_mSwipeLeft();
_mSwipeLeft(_mScrollView("Test"));
_mSwipeLeft(_aRelativeLayout("Swipe Me"), 0.5, 1000);
Sahi Pro Classic API :_mSwipeLeft
Swipes right on the element.
Parameters
$element | Mobile Element optional | Element to be swiped. If not specified, then it will consider the top most element to perform swipe gesture. |
$percent | float optional | Android: The length of the swipe as a percentage of the element's size. If not specified, a value of 1.0 will be used. iOS: It is not used. |
$speed | integer optional | Android: Speed to perform swipe. If not specified, default value will be used specific to device. iOS: It is not used. |
Return Value
Modes Supported :
Raw Script
_mSwipeRight();
_mSwipeRight(_mScrollView("Test"));
_mSwipeRight(_aRelativeLayout("Swipe Me"), 0.5, 1000);
Sahi Pro Classic API :_mSwipeRight
WebView APIs
Changes the execution mode to
ANDROID_WEBVIEW
/IOS_WEBVIEW
and starts the execution of the following steps as Web.
Parameters
$packageName | string | Android: application package name iOS: Not required |
Return Value
Modes Supported :
Raw Script
Android:
_mStartWebContext("com.sahipro.SahiTestApp");
iOS:
_mStartWebContext();
Sahi Pro Classic API :_mStartWebContext
Stop the execution of following steps in Android/iOS WebView.
Parameters
None |
Return Value
Modes Supported :
Raw Script
Sahi Pro Classic API :_mStopWebContext
Mobile Browser APIs
Returns the browserInstanceId
Launches a new browser instance. This instance does not share cookies with the base browser.
Once launched, steps can be directed to different browser instances via
Once launched, steps can be directed to different browser instances via
_selectBrowser
infoMode has to be set to ANDROID_BROWSER or IOS_BROWSER using _setMode before calling this API.
infoNote: Mainly used along with the _connectDevice. User must pass the deviceId returned by _connectDevice API.
Parameters
$deviceId | string | deviceId of the device on which the browser will be launched. |
$url | string optional | URL to load on opening new browser instance. If URL is null, the Start URL of the script is launched. |
Return Value
string | Browser instanceId. This can be passed to _selectBrowser |
Modes Supported :
Raw Script
// for Android
_setMode("ANDROID_BROWSER");
// _connectDevice will return the deviceId and use that deviceId as parameter in _launchNewMobileBrowser
var $deviceId = _connectDevice();
// It will launch browser with Specified URL.
var $sessionId = _launchNewMobileBrowser($deviceId, "http://sahitest.com/demo/");
_selectBrowser($sessionId);
...
// for iOS
_setMode("IOS_BROWSER");
// _connectDevice will return the deviceId and use that deviceId as parameter in _launchNewMobileBrowser
var $deviceId = _connectDevice();
// It will launch browser with Specified URL.
var $sessionId = _launchNewMobileBrowser($deviceId, "http://sahitest.com/demo/");
_selectBrowser($sessionId);
...
Sahi Pro Classic API :_launchNewMobileBrowser
Returns the browserInstanceId.
Launches a new browser instance. This instance does not share cookies with the base browser.
Once launched, steps can be directed to different browser instances via
Launches a new browser instance. This instance does not share cookies with the base browser.
Once launched, steps can be directed to different browser instances via
_selectBrowser
infoMode has to be set to ANDROID_BROWSER or IOS_BROWSER using _setMode before calling this API.
warningNote: Unlike _launchNewMobileBrowser, this API will consume the device from the capacities.
Parameters
$deviceId | string optional | deviceId of the device on which the browser will be launched, If deviceId is null, the Start DeviceId of the script is used. |
$url | string optional | URL to load on opening new browser instance. If URL is null, the Start URL of the script is launched. |
Return Value
string | Browser instanceId. This can be passed to _selectBrowser |
Modes Supported :
Raw Script
// For Android Browser playback
_setMode("ANDROID_BROWSER");
var $sessionId = _launchNewMobileBrowser2();
_selectBrowser();
...
// For iOS Browser playback
_setMode("IOS_BROWSER");
var $sessionId = _launchNewMobileBrowser2();
_selectBrowser();
...
Sahi Pro Classic API :_launchNewMobileBrowser2
Other APIs
Returns device information as an associative array.
Array contains following information:
- name: Name of the device specified in
userdata/config/(android_devices.xml or ios_devices.xml)
- displayName: Display name of the device specified in
userdata/config/(android_devices.xml or ios_devices.xml)
- deviceName: Device name
- deviceId: Device Id.
- version: Device OS version
Parameters
None |
Return Value
object | Device object |
Modes Supported :
Raw Script
var $deviceInfo = _deviceInfo();
var $displayName = $deviceInfo["displayName"];
// or
var $displayName = $deviceInfo.displayName;
Sahi Pro Classic API :_deviceInfo