TestComplete provides the Enumerator object that helps you iterate through collections. This object works in any scripting language. It is an analog of the for...of statement in JavaScript, of the Enumerator object in JScript, Python, C#Script and C++Script, of the For Each statement in VBScript and of the for each statement in Delphi 2005 and later. To obtain an enumerator for a collection, use the Utils.Enumerator method.
The enumerator is initially positioned at the first item in the collection. The MoveFirst method also resets the enumerator to this position. The Item method returns the current item in the collection and the MoveNext method advances the enumerator to the next element. Once the enumerator is positioned at the end of the collection, the AtEnd method returns True. To bring the enumerator back to the first element, use the MoveFirst method.
The following code shows the Enumerator object usage. It posts a list of currently running processes to the test log.
JavaScript, JScript
function Test()
{
var Enum = Utils.Enumerator(Sys);
while (!Enum.AtEnd)
{
Log.Message(Enum.Item.Name)
Enum.MoveNext()
}
}
Python
def Test():
Enum = Utils.Enumerator(Sys)
while not Enum.AtEnd:
Log.Message(Enum.Item.Name)
Enum.MoveNext()
VBScript
Sub Test
Set enumproc = Utils.Enumerator(Sys)
Do While not enumproc.AtEnd
Log.Message(enumproc.Item.Name)
enumproc.MoveNext
Loop
End Sub
DelphiScript
procedure Test();
var
Enum;
begin
Enum := Utils.Enumerator(Sys);
while not Enum.AtEnd do
begin
Log.Message(Enum.Item.Name);
Enum.MoveNext();
end;
end;
C++Script, C#Script
function Test()
{
var Enum = Utils["Enumerator"](Sys);
while (!Enum["AtEnd"])
{
Log["Message"](Enum["Item"].Name)
Enum["MoveNext"]()
}
}

Enumerator Methods