Multiple Browser Instances in Single Script

In a scenario like chatting, a test case may require 2 application users to be simultaneously logged in. Sahi Pro V5.1 and above provides the ability to launch new browser instances from a single script. These instances do not share cookies so they can allow multiple application users to be logged into the system simultaneously.

_launchNewBrowser

Since: Sahi ProDesktop Add-OnMobile Add-OnSAP Add-OnAI Assist Add-On
5.1.0NANANANA

Available for modes: Browser

_launchNewBrowser([$url[, $browserType]])

Arguments
$urlstring optional URL to load on opening new browser instance. If URL is null, the Start URL of the script is launched.
$browserTypestring optional Browser type to launch. If null, a browser instance of the Default browser type is launched.

Returns
string Browser instanceId. This can be passed to _selectBrowser

Sahi Pro Flowcharts Action :Launch New Browser

Details

Launches a new browser instance. Note that this browser instance does not share cookies with the base browser. This new browser instance is useful for testing functionality like chat where 2 simultaneous users need to be logged in into the system.
Once launched, steps can be directed to different browser instances by adding _selectBrowser API.
Once launched, steps can be directed to different browser instances by adding Select Browser Action.
infoSahi tries to get a browser instance from a separate pool of instances (defined by browserType capacity in browser_types.xml). If one is available it will return immediately. If not, Sahi will wait and retry x number of times.
x is defined by property browser.max_wait_count_for_available_thread_from_dashboard in sahi.properties If an instance is still not available, _launchNewBrowser will fail.
_navigateTo("http://myapp/login.html");
// login as first user
...
// launch a new browser instance
var $instanceId = _launchNewBrowser("http://myapp/login.html");
_wait(5000);
// wait and select the new browser instance using the instanceId
_selectBrowser($instanceId);
// log in as second user
// send a chat message to first user
...

// Select the base window
_selectBrowser();
// view chat window and verify second user's chat message has arrived
...
// Examples for specifying arguments
var $id1 = _launchNewBrowser(); // Launches a new chrome browser instance if base window is chrome.

// launch a new chrome browser instance and navigate to "http://myapp/login.html"
var $id2 = _launchNewBrowser("http://myapp/login.html");
// launch a new firefox browser instance
var $id3 = _launchNewBrowser(null, "firefox");
// launch a new firefox browser instance and navigate to "http://myapp/login.html"
var $id4 = _launchNewBrowser("http://myapp/login.html", "firefox");


_selectBrowser

Since: Sahi ProDesktop Add-OnMobile Add-OnSAP Add-OnAI Assist Add-On
5.1.0NANANANA

Available for modes: Browser

_selectBrowser([$browserInstanceId])

Arguments
$browserInstanceIdstring optional browserInstanceId to forward further steps to. If not specified, steps are forwarded to the default browser that the script was started with.

Returns
null

Sahi Pro Flowcharts Action :Select Browser

Details

Selects the particular browser instance. Further steps in the script will be directed to the selected instance.
_navigateTo("http://myapp/login.html");
// login as first user
...
// launch a new browser instance
var $instanceId = _launchNewBrowser("http://myapp/login.html");
_wait(5000);
// wait and select the new browser instance using the instanceId
_selectBrowser($instanceId);
// log in as second user
// send a chat message to first user
...

// Select the base window
_selectBrowser();
// view chat window and verify second user's chat message has arrived
...