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.
These APIs will work only on an iOS device/simulator.
Action APIs
Simulates two finger touches on an element, each with a single tap.
Parameters
$element | iOS Element | Element to be tapped. |
Return Value
Modes Supported :
Raw Script
_iTwoFingerTap(_image("abc"));
Sahi Pro Classic API :_iTwoFingerTap
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
$element | iOS Element | element to be tapped |
$taps | integer | Number of taps |
$touches | integer | 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
Simulates a rotation gesture on an element.
Parameters
$element | iOS Element | Element to be rotated |
$rotationAngle | float | Rotation of the gesture in radians. A positive value indicates a clockwise rotation. A negative value indicates counter clockwise rotation. |
$velocity | float | 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
Activates Siri with voice recognition text.
Works only on iOS devices/simulators with iOS version greater than iOS 10.3.
Works only on iOS devices/simulators with iOS version greater than iOS 10.3.
Parameters
$text | string | 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
Simulates volume up action on an iOS Device.
Works only on an iOS device, and not on an iOS simulator.
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
Simulates volume down action on an iOS Device.
Works only on an iOS device, and not on an iOS simulator.
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
Returns true if the element is selected. Otherwise, returns false.
Parameters
$element | iOS Element | Element whose isSelected attribute is to be checked. |
Return Value
boolean | true 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
Returns true if the running platform is an iOS device. Returns false for an iOS simulator.
Parameters
None |
Return Value
boolean | true 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
Returns state of application.
Parameters
$bundleId | iOS App Bundle Id | Bundle id of application whose state is required.Element whose isSelected attribute is to be checked. |
Return Value
boolean | State 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 tells Sahi to click the button with the given buttonIdentifier, for a dialog with given message.
Parameters
$message | string | Message to expect in dialog. This can also be a regular expression |
$buttonIdentifier | string|integer | Sahi Identifier for the button. Can also be just an index. |
$persist | boolean optional | If 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
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
Parameters
$alldialogs | boolean optional | If true, returns array of all system dialog messages. |
Return Value
string | last system dialog message if $alldialogs is false |
array of strings | an 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
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
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
Sahi will try to click on the keyboard button provided by
ios.keyboard.buttons.autoclick
property in SAHI_INSTALL_PATH\config\sahi.properties
.
Parameters
$autoDismiss | boolean | true or false |
Return Value
Modes Supported :
Raw Script
Sahi Pro Classic API :_iSetAutoDismissKeyboard