Most likely, you will want to run the created cross-browser test in a loop using a new browser on each iteration. The sections of this topic describe different ways to achieve this:
If your test installs or uninstalls a browser during the run, then call the |
Iterating Through Browsers in Keyword Tests
To perform the same web test in different browsers, you can use the Browser Loop keyword operation. In this operation you define a list of browsers to be launched: these can be all the installed browsers, or just some particular browsers, versions or editions. During the test run TestComplete starts the browsers from that list one after another and executes the child operations in each started browser.
Using the Browser Loop keyword operation
Tip: | To convert a Run Browser operation to a Browser Loop operation, right-click the Run Browser operation in the Keyword Test editor and select Make Browser Loop from the context menu. |
Enumerating Browsers in Scripts
TestComplete stores the collection of the available browsers in the Browsers
object and you can use this object to run a web test in different browsers. The Browsers
object allows you to use the built-in syntax of the scripting languages supported by TestComplete to iterate through the object’s collection of items. You can use the Utils.Enumerator
method to iterate through browsers. You can also use language-specific statements. In JavaScript, enumeration is done by using the for...of statement, in JScript, Python, C#Script and C++Script - by using the Enumerator
object, In VBScript - by using the For Each
statement; DelphiScript does not provide a native way to create an enumerator loop.
JavaScript
function IterateBrowsers1()
{
for (let browser of Browsers)
{
// Start a browser instance
browser.Run();
// Perform web testing
// ...
// Close the browser instance
Aliases.browser.Close();
}
}
JScript
function IterateBrowsers1()
{
var browsersEnum, browser;
browsersEnum = new Enumerator(Browsers);
while (!browsersEnum.atEnd())
{
browser = browsersEnum.item();
// Start a browser instance
browser.Run();
// Perform web testing
// ...
// Close the browser instance
Aliases.browser.Close();
browsersEnum.moveNext();
}
}
Python
def IterateBrowsers1():
browsersEnum = Utils.Enumerator(Browsers);
while not browsersEnum.AtEnd:
browser = browsersEnum.item;
# Start a browser instance
browser.Run();
# Perform web testing
# ...
# Close the browser instance
Aliases.browser.Close();
browsersEnum.MoveNext();
VBScript
Sub IterateBrowsers1
Dim browser
For Each browser In Browsers
' Start a browser instance
browser.Run
' Perform web testing
'...
' Close the browser instance
Aliases.browser.Close
Next
End Sub
DelphiScript
procedure IterateBrowsers1;
var browsersEnum, browser;
begin
browsersEnum := Utils.Enumerator(Browsers);
while not browsersEnum.AtEnd do
begin
browser := browsersEnum.item;
// Start a browser instance
browser.Run;
// Perform web testing
// ...
// Close the browser instance
Aliases.browser.Close;
browsersEnum.MoveNext;
end;
end;
C++Script, C#Script
function IterateBrowsers1()
{
var browsersEnum = new Enumerator(Browsers);
while (!browsersEnum["atEnd"]())
{
browser = browsersEnum["item"]();
// Start a browser instance
browser["Run"]();
// Perform web testing
// ...
// Close the browser instance
Aliases["browser"]["Close"]();
browsersEnum["moveNext"]();
}
}
Iterating Through Browsers in Scripts
Another way is to retrieve the total number of the browser versions available for web testing through the Browsers.Count
property and then use the standard loop statements of the corresponding scripting languages:
JavaScript, JScript
function IterateBrowsers2()
{
for (var i = 0; i < Browsers.Count; i++)
{
browser = Browsers.Item(i);
// Start a browser instance
browser.Run();
// Perform web testing
// ...
// Close the browser instance
Aliases.browser.Close();
}
}
Python
def IterateBrowsers2():
for i in range (0, Browsers.Count-1):
browser = Browsers.Item[i];
# Start a browser instance
browser.Run();
# Perform web testing
# ...
# Close the browser instance
Aliases.browser.Close();
Delay(3000);
VBScript
Sub IterateBrowsers2
Dim browser
For i = 0 to Browsers.Count - 1
Set browser = Browsers.Item(i)
' Start a browser instance
browser.Run
' Perform web testing
'...
' Close the browser instance
Aliases.browser.Close
Next
End Sub
DelphiScript
procedure IterateBrowsers2;
var browser, i;
begin
for i := 0 to Browsers.Count-1 do
begin
browser := Browsers.Item(i);
// Start a browser instance
browser.Run;
// Perform web testing
// ...
// Close the browser instance
Aliases.browser.Close;
Delay(3000);
end;
end;
C++Script, C#Script
function IterateBrowsers2()
{
for (var i = 0; i < Browsers["Count"]; i++)
{
browser = Browsers["Item"](i);
// Start a browser instance
browser["Run"]();
// Perform web testing
// ...
// Close the browser instance
Aliases["browser"]["Close"]();
}
}
See Also
About Cross-Browser Testing in TestComplete
Launching Browsers
Parameterizing the Browser for a Test Run
Handling Browser Differences