Changing the Current State
To change the current state of a switch control, simulate a single touch action over the control. This will explicitly change the initial state of the control to the opposite state: if the switch was "on" it will become "off" and vice versa.
To simulate a touch on a switch control, use the Touch
action of the iOS Switch
object that TestComplete associates with that control. The following example demonstrates how to simulate a touch on a switch:
JavaScript, JScript
function Test()
{
// Select the mobile device
Mobile.SetCurrent("iPhone");
// Obtain the switch object
var p = Mobile.Device().Process("SampleApp");
var Switch = p.Window(0).Switch(0);
// Touch the switch
Switch.Touch();
}
Python
def Test():
# Select the mobile device
Mobile.SetCurrent("iPhone")
# Obtain the switch object
p = Mobile.Device().Process("SampleApp")
Switch = p.Window(0).Switch(0)
# Touch the switch
Switch.Touch()
VBScript
Sub Test()
Dim p, Switch
' Select the mobile device
Mobile.SetCurrent("iPhone")
' Obtain the switch object
Set p = Mobile.Device.Process("SampleApp")
Set Switch = p.Window(0).Switch(0)
' Touch the switch
Switch.Touch()
End Sub
DelphiScript
procedure Test();
var
p, Switch;
begin
// Select the mobile device
Mobile.SetCurrent('iPhone');
// Obtain the switch object
p := Mobile.Device.Process('SampleApp');
Switch := p.Window(0).Switch(0);
// Touch the switch
Switch.Touch();
end;
C++Script, C#Script
function Test()
{
// Select the mobile device
Mobile["SetCurrent"]("iPhone");
// Obtain the switch object
var p = Mobile["Device"].Process("SampleApp");
var Switch = p["Window"](0)["Switch"](0);
// Touch the switch
Switch["Touch"]();
}
Setting the Desired State
To set a switch control to the desired state, use the Switch
action. This action compares the current state of the control and the desired state specified via the input parameter: if the state mismatches, the action performs a single touch over the control; otherwise, it performs no action. The following example sets a switch to the checked state and posts information about the state to the log:
JavaScript, JScript
function Test()
{
// Select the mobile device
Mobile.SetCurrent("iPhone");
// Obtain the switch object
var p = Mobile.Device().Process("SampleApp");
var Switch = p.Window(0).Switch(0);
// Set the switch to the "on" state
Switch.Switch(true);
}
Python
def Test():
# Select the mobile device
Mobile.SetCurrent("iPhone")
# Obtain the switch object
p = Mobile.Device().Process("SampleApp")
Switch = p.Window(0).Switch(0)
# Set the switch to the "on" state
Switch.Switch(True)
VBScript
Sub Test()
Dim p, Switch
' Select the mobile device
Mobile.SetCurrent("iPhone")
' Obtain the switch object
Set p = Mobile.Device.Process("SampleApp")
Set Switch = p.Window(0).Switch(0)
' Set the switch to the "on" state
Switch.Switch(True)
End Sub
DelphiScript
procedure Test();
var
p, Switch;
begin
// Select the mobile device
Mobile.SetCurrent('iPhone');
// Obtain the switch object
p := Mobile.Device.Process('SampleApp');
Switch := p.Window(0).Switch(0);
// Set the switch to the "on" state
Switch.Switch(true);
end;
C++Script, C#Script
function Test()
{
// Select the mobile device
Mobile["SetCurrent"]("iPhone");
// Obtain the switch object
var p = Mobile["Device"].Process("SampleApp");
var Switch = p["Window"](0)["Switch"](0);
// Set the switch to the "on" state
Switch["Switch"](true);
}
Assigning a Value to the wState Property
To assign a switch value directly, use the wState
property. Assigning the wState
value is reflected in the test log. Below is an example of how to modify the state of a switch:
JavaScript, JScript
function Test()
{
// Select the mobile device
Mobile.SetCurrent("iPhone");
// Obtain the switch object
var p = Mobile.Device().Process("SampleApp");
var Switch = p.Window(0).Switch(0);
// Set the switch to the "on" state
Switch.wState = true;
}
Python
def Test():
# Select the mobile device
Mobile.SetCurrent("iPhone")
# Obtain the switch object
p = Mobile.Device().Process("SampleApp")
Switch = p.Window(0).Switch(0)
# Set the switch to the "on" state
Switch.wState = True
VBScript
Sub Test()
Dim p, Switch
' Select the mobile device
Mobile.SetCurrent("iPhone")
' Obtain the switch object
Set p = Mobile.Device.Process("SampleApp")
Set Switch = p.Window(0).Switch(0)
' Set the switch to the "on" state
Switch.wState = True
End Sub
DelphiScript
procedure Test();
var
p, Switch;
begin
// Select the mobile device
Mobile.SetCurrent('iPhone');
// Obtain the switch object
p := Mobile.Device.Process('SampleApp');
Switch := p.Window(0).Switch(0);
// Set the switch to the "on" state
Switch.wState := true;
end;
C++Script, C#Script
function Test()
{
// Select the mobile device
Mobile["SetCurrent"]("iPhone");
// Obtain the switch object
var p = Mobile["Device"].Process("SampleApp");
var Switch = p["Window"](0)["Switch"](0);
// Set the switch to the "on" state
Switch["wState"] = true;
}
Changing the Switch State in Keyword Tests
You can change the state of a switch in keyword tests by using the On-Screen Action or Call Object Method operation. To do this, call the Touch
or Switch
action, or change the value of the wState
property.
See Also
Working With iOS Switch Controls
Determining a Switch's State
Switch Action (Specific to iOS Switch Controls)
Touch Action (Mobile Objects)
wState Property (Mobile Controls)