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

_iTwoFingerTap

Since: Sahi ProSahi OSSahi Pro StarterDesktop Add-OnMobile Add-On
NANANANA7.5.0

Available for modes: iOS

_iTwoFingerTap($element)

Arguments
$elementiOS Element Element to be tapped.

Returns
null

Details

Simulates two finger touches on an element, each with a single tap.
_iTwoFingerTap(_image("abc"));


_iTapWithNumberOfTapsNumberOfTouches

Since: Sahi ProSahi OSSahi Pro StarterDesktop Add-OnMobile Add-On
NANANANA7.5.0

Available for modes: iOS

_iTapWithNumberOfTapsNumberOfTouches($element, $taps, $touches)

Arguments
$elementiOS Element element to be tapped
$tapsinteger Number of taps
$touchesinteger Number of touches.

Returns
null

Details

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.
_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


_iRotate

Since: Sahi ProSahi OSSahi Pro StarterDesktop Add-OnMobile Add-On
NANANANA7.5.0

Available for modes: iOS

_iRotate($element, $rotationAngle, $velocity)

Arguments
$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.

Returns
null

Details

Simulates a rotation gesture on an element.
_iRotate(_iMap(0), Math.PI/4, 0.5); // Clockwise rotation
_iRotate(_iMap(0), -Math.PI/4, -0.5); // Counter-clockwise rotation


_iActivateSiriWithVoiceRecognitionText

Since: Sahi ProSahi OSSahi Pro StarterDesktop Add-OnMobile Add-On
NANANANA7.5.0

Available for modes: iOS

_iActivateSiriWithVoiceRecognitionText($text)

Arguments
$textstring Text to be recognized.

Returns
null

Details

Activates Siri with voice recognition text.
Works only on iOS devices/simulators with iOS version greater than iOS 10.3.
_iActivateSiriWithVoiceRecognitionText("Please set a reminder for my meeting with John");


_iPressVolumeUp

Since: Sahi ProSahi OSSahi Pro StarterDesktop Add-OnMobile Add-On
NANANANA7.5.0

Available for modes: iOS

_iPressVolumeUp()

Arguments
None

Returns
null

Details

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


_iPressVolumeDown

Since: Sahi ProSahi OSSahi Pro StarterDesktop Add-OnMobile Add-On
NANANANA7.5.0

Available for modes: iOS

_iPressVolumeDown()

Arguments
None

Returns
null

Details

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


Fetch APIs

_iIsSelected

Since: Sahi ProSahi OSSahi Pro StarterDesktop Add-OnMobile Add-On
NANANANA7.5.0

Available for modes: iOS

_iIsSelected($element)

Arguments
$elementiOS Element Element whose isSelected attribute is to be checked.

Returns
booleantrue or false based on whether the element is selected or not.

Details

Returns true if the element is selected. Otherwise, returns false.
var $selected = _iIsSelected(_button("radio-button"));


_iIsDevice

Since: Sahi ProSahi OSSahi Pro StarterDesktop Add-OnMobile Add-On
NANANANA7.5.0

Available for modes: iOS

_iIsDevice()

Arguments
None

Returns
booleantrue or false based on whether the running platform is an iOS device.

Details

Returns true if the running platform is an iOS device. Returns false for an iOS simulator.
if (_iIsDevice()) { // Volume down can be simulated only for an iOS device.
	_iPressVolumeDown();
}


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.

_iExpectSystemDialog

Since: Sahi ProSahi OSSahi Pro StarterDesktop Add-OnMobile Add-On
NANANANA7.5.0

Available for modes: iOS

_iExpectSystemDialog($message, $buttonIdentifier[, $persist])

Arguments
$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.

Returns
null

Details

_iExpectSystemDialog tells Sahi to click the button with the given buttonIdentifier, for a dialog with given message.
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);


_iInteractWithApp

Since: Sahi ProSahi OSSahi Pro StarterDesktop Add-OnMobile Add-On
NANANANA7.5.0

Available for modes: iOS

_iInteractWithApp()

Arguments
None

Returns
null

Details

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


_iLastSystemDialog

Since: Sahi ProSahi OSSahi Pro StarterDesktop Add-OnMobile Add-On
NANANANA7.5.0

Available for modes: iOS

_iLastSystemDialog([$alldialogs])

Arguments
$alldialogsboolean optional If true, returns array of all system dialog messages.

Returns
stringlast system dialog message if $alldialogs is false
array of stringsan array of all dialog messages in the browser if $alldialogs is true

Details

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


_iClearLastSystemDialog

Since: Sahi ProSahi OSSahi Pro StarterDesktop Add-OnMobile Add-On
NANANANA7.5.0

Available for modes: iOS

_iClearLastSystemDialog()

Arguments
None

Returns
null

Details

Removes the last system dialog message from session so that further occurrence of system dialogs can be checked
_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

_iSetAutoDismissKeyboard

Since: Sahi ProSahi OSSahi Pro StarterDesktop Add-OnMobile Add-On
NANANANA8.0.0

Available for modes: iOS

_iSetAutoDismissKeyboard($autoDismiss)

Arguments
$autoDismissboolean true or false

Returns
null

Details

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.