iOS APIs

This page lists the APIs specific to iOS. These APIs have an _i prefix in camel case, example: _iRotate.

These APIs will work only on an iOS device/simulator.

Action APIs

ITwo Finger Tap

Simulates two finger touches on an element, each with a single tap.

Parameters
$elementiOS Element Element to be tapped.
Return Value

Modes Supported :
Raw Script
_iTwoFingerTap(_image("abc"));

Sahi Pro Classic API :_iTwoFingerTap


ITap With Number Of Taps Number Of Touches

Simulates number of finger touches on an element, each with a number of taps. NOTE that the first parameter is for taps and the second is for touches.

Parameters
$elementiOS Element element to be tapped
$tapsinteger Number of taps
$touchesinteger Number of touches.
Return Value

Modes Supported :
Raw Script
_iTapWithNumberOfTapsNumberOfTouches(_iMap(0), 2, 1); // One touch, with two taps. Same as _doubleClick
_iTapWithNumberOfTapsNumberOfTouches(_iMap(0), 1, 2); // Two touches, each with a single tap. Same as _iTwoFingerTap

Sahi Pro Classic API :_iTapWithNumberOfTapsNumberOfTouches


IRotate

Simulates a rotation gesture on an element.

Parameters
$elementiOS Element Element to be rotated
$rotationAnglefloat Rotation of the gesture in radians. A positive value indicates a clockwise rotation. A negative value indicates counter clockwise rotation.
$velocityfloat Velocity of the rotation gesture in radians per second. If rotationAngle is negative, then velocity must be negative.
Return Value

Modes Supported :
Raw Script
_iRotate(_iMap(0), Math.PI/4, 0.5); // Clockwise rotation
_iRotate(_iMap(0), -Math.PI/4, -0.5); // Counter-clockwise rotation

Sahi Pro Classic API :_iRotate


IActivate Siri With Voice Recognition Text

Activates Siri with voice recognition text.
Works only on iOS devices/simulators with iOS version greater than iOS 10.3.

Parameters
$textstring Text to be recognized.
Return Value

Modes Supported :
Raw Script
_iActivateSiriWithVoiceRecognitionText("Please set a reminder for my meeting with John");

Sahi Pro Classic API :_iActivateSiriWithVoiceRecognitionText


IPress Volume Up

Simulates volume up action on an iOS Device.
Works only on an iOS device, and not on an iOS simulator.

Parameters
None
Return Value

Modes Supported :
Raw Script
_iPressVolumeUp();

Sahi Pro Classic API :_iPressVolumeUp


IPress Volume Down

Simulates volume down action on an iOS Device.
Works only on an iOS device, and not on an iOS simulator.

Parameters
None
Return Value

Modes Supported :
Raw Script
_iPressVolumeDown();

Sahi Pro Classic API :_iPressVolumeDown


Fetch APIs

IIs Selected

Returns true if the element is selected. Otherwise, returns false.

Parameters
$elementiOS Element Element whose isSelected attribute is to be checked.
Return Value
booleantrue or false based on whether the element is selected or not.

Modes Supported :
Raw Script
var $selected = _iIsSelected(_button("radio-button"));

Sahi Pro Classic API :_iIsSelected


IIs Device

Returns true if the running platform is an iOS device. Returns false for an iOS simulator.

Parameters
None
Return Value
booleantrue or false based on whether the running platform is an iOS device.

Modes Supported :
Raw Script
if (_iIsDevice()) { // Volume down can be simulated only for an iOS device.
	_iPressVolumeDown();
}

Sahi Pro Classic API :_iIsDevice


IGet Application State

Returns state of application.

Parameters
$bundleIdiOS App Bundle Id Bundle id of application whose state is required.Element whose isSelected attribute is to be checked.
Return Value
booleanState of application as number.

Modes Supported :
Raw Script
var $state = _iGetApplicationState("com.sahipro.ios.test.SahiTestApp");

Sahi Pro Classic API :_iGetApplicationState


System Dialog APIs

In iOS, system dialogs cannot be automated with regular APIs. For example, one cannot use _click to click on the Allow button in a system dialog.

Refer to Automating System Dialogs for details on how to automate a system dialog.

IExpect System Dialog

IExpect System Dialog tells Sahi to click the button with the given buttonIdentifier, for a dialog with given message.

Parameters
$messagestring Message to expect in dialog. This can also be a regular expression
$buttonIdentifierstring|integer Sahi Identifier for the button. Can also be just an index.
$persistboolean optionalIf true, will accept a single _iExpectSystemDialog statement for all system dialogs coming after the statement. If false, will accept only the next system dialog to work with the _iExpectSystemDialog statement. Default is false.
Return Value

Modes Supported :
Raw Script
var $dialogLabelExpected = "/Allow.*Maps.*location/";
var $btnTextToClick = "Allow"; // This will click the "Allow" button

// Set the expected dialog label, and indicate the button to click.
_iExpectSystemDialog($dialogLabelExpected, $btnTextToClick);

Sahi Pro Classic API :_iExpectSystemDialog


IInteract With App

For iOS to invoke the system dialog handler, the app has to be interacted with. IInteract With App() does just that.

Parameters
None
Return Value

Modes Supported :
Raw Script
_iInteractWithApp();

Sahi Pro Classic API :_iInteractWithApp


ILast System Dialog


Parameters
$alldialogsboolean optional If true, returns array of all system dialog messages.
Return Value
stringlast system dialog message if $alldialogs is false
array of stringsan array of all dialog messages in the browser if $alldialogs is true

Modes Supported :
Raw Script
// Return array of all system dialog messages.
var $allMessages = _iLastSystemDialog(true);
// Return only last system dialog message.
var $lastMessage= _iLastSystemDialog();

Sahi Pro Classic API :_iLastSystemDialog


IClear Last System Dialog

Removes the last system dialog message from session so that further occurrence of system dialogs can be checked

Parameters
None
Return Value

Modes Supported :
Raw Script
_iClearLastSystemDialog();

Sahi Pro Classic API :_iClearLastSystemDialog


System Dialog Example

var $dialogLabelExpected = "/Allow.*Maps.*location/";
var $btnTextToClick = "Allow";

// Set the expected dialog label, and indicate the button to click.
_iExpectSystemDialog($dialogLabelExpected, $btnTextToClick);

// Activate the Maps application
_mActivateApplication("com.apple.Maps", true);
// Wait a little while so that the system dialog comes up.
_wait(3000);

// IMPORTANT: Interact with the app. This is what will trigger the dialog handler.
_iInteractWithApp();
// Sahi would click on the Allow button now.

// Get the last dialog label and assert that it is same as expected.
var $dialogLabelActual = _iLastSystemDialog();
_assertEqual($dialogLabelExpected, $dialogLabelActual);


Other APIs

ISet Auto Dismiss Keyboard

By default, Sahi will try to dismiss keyboard automatically after setting value in the textfield. To disable this functionaity set it to false.
Sahi will try to click on the keyboard button provided by ios.keyboard.buttons.autoclick property in SAHI_INSTALL_PATH\config\sahi.properties.

Parameters
$autoDismissboolean true or false
Return Value

Modes Supported :
Raw Script

Sahi Pro Classic API :_iSetAutoDismissKeyboard