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.

Action APIs

Activate Application

Activates an application.

Parameters
$bundleIdstring Android: Package name of the application
iOS: Bundle ID of the application
$forceboolean optionalFlag 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

MLong Click simulates a user's long click on the given element.

Parameters
$elementMobile Element Mobile element to long click on
$durationinteger optionalDuration for the long click.
Return Value

Modes Supported :
Raw Script
_mLongClick(_button("Click Me"));

Sahi Pro Classic API :_mLongClick


MPinch Open

Performs a pinch open gesture on the given element.

Parameters
$elementMobile Element Mobile element to perform pinch open action on.
$percentfloat 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
$speedinteger|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


MPinch Close

Performs a pinch close gesture on the given element.

Parameters
$elementMobile Element Mobile element to perform pinch close action on.
$percentfloat 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
$speedinteger|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


Press Home

Brings up the Home screen.

Parameters
None
Return Value

Modes Supported :
Raw Script
_mPressHome();

Sahi Pro Classic API :_mPressHome


MSet Orientation

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

MOSVersion

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

Parameters
None
Return Value
stringAndroid: SDK version of device/emulator.
iOS: iOS version of device/simulator.

Modes Supported :
Raw Script
var $version = _mOSVersion();

Sahi Pro Classic API :_mOSVersion


MGet Orientation

Returns device orientation, for example: PORTRAIT, PORTRAIT_UPSIDE_DOWN, LANDSCAPE_LEFT, LANDSCAPE_RIGHT

Parameters
None
Return Value
stringDevice 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.

Swipe Up

Swipes up on the element.

Parameters
$elementMobile Element optionalElement to be swiped. If not specified, then it will consider the top most element to perform swipe gesture.
$percentfloat optionalAndroid: 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.
$speedinteger optionalAndroid: 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


Swipe Down

Swipes down on the element.

Parameters
$elementMobile Element optionalElement to be swiped. If not specified, then it will consider the top most element to perform swipe gesture.
$percentfloat optionalAndroid: 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.
$speedinteger optionalAndroid: 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


Swipe Left

Swipes left on the element.

Parameters
$elementMobile Element optionalElement to be swiped. If not specified, then it will consider the top most element to perform swipe gesture.
$percentfloat optionalAndroid: 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.
$speedinteger optionalAndroid: 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


Swipe Right

Swipes right on the element.

Parameters
$elementMobile Element optionalElement to be swiped. If not specified, then it will consider the top most element to perform swipe gesture.
$percentfloat optionalAndroid: 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.
$speedinteger optionalAndroid: 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

MStart Web Context

Changes the execution mode to ANDROID_WEBVIEW/IOS_WEBVIEW and starts the execution of the following steps as Web.

Parameters
$packageNamestring 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


MStop Web Context

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

Launch New Mobile Browser

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 _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
$deviceIdstring deviceId of the device on which the browser will be launched.
$urlstring optional URL to load on opening new browser instance. If URL is null, the Start URL of the script is launched.
Return Value
stringBrowser 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


Launch New Mobile Browser2

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 _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
$deviceIdstring optional deviceId of the device on which the browser will be launched, If deviceId is null, the Start DeviceId of the script is used.
$urlstring optional URL to load on opening new browser instance. If URL is null, the Start URL of the script is launched.
Return Value
stringBrowser 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

Device Info

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
objectDevice object

Modes Supported :
Raw Script
var $deviceInfo = _deviceInfo();
var $displayName = $deviceInfo["displayName"];
// or
var $displayName = $deviceInfo.displayName;

Sahi Pro Classic API :_deviceInfo