Top Rounds
[Hide Navigation]

Sahi headless execution with PhantomJS ·

PhantomJS is a headless browser based on WebKit. (A headless browser runs without a user interface)

Documentation since Sahi Pro V4.3.2

1) Download phantomjs-1.x.x-win32-dynamic.zip from http://code.google.com/p/phantomjs/downloads/list
(Or choose the correct one from http://phantomjs.org/download.html)

2) Unzip it and copy phantomjs.exe to sahi/ext/phantomjs folder such that you have sahi/ext/phantomjs/phantomjs.exe (for linux copy phantomjs file)

3) Click “Configure” link on Dashboard, and, if not present, add

For Windows:

	<browserType>
		<name>phantomjs</name>
		<displayName>PhantomJS</displayName>
		<icon>safari.png</icon>
		<path>$sahiDir\ext\phantomjs\phantomjs.exe</path>
		<options>--proxy=localhost:9999 $sahiDir\ext\phantomjs\sahi.js</options>
		<processName>phantomjs.exe</processName>
		<capacity>100</capacity>
		<useSystemProxy>false</useSystemProxy>
	</browserType>

For Linux

	<browserType>
		<name>phantomjs</name>
		<displayName>PhantomJS</displayName>
		<icon>safari.png</icon>
		<path>$sahiDir/ext/phantomjs/phantomjs</path>
		<options>--proxy=localhost:9999 $sahiDir/ext/phantomjs/sahi.js</options>
		<processName>phantomjs</processName>
		<capacity>100</capacity>
		<useSystemProxy>false</useSystemProxy>
	</browserType>

4) Save and restart Sahi.

5) To run a test in PhantomJS: Click on “Bin” on the dashboard (or navigate to sahi/userdata/bin on a command prompt) and run the command

testrunner.bat demo/sahi_demo.sah http://sahi.co.in/demo/ phantomjs

This will run the Sahi script without opening a browser.


Older Documentation (before Sahi Pro V4.3.2)

1) Download phantomjs-1.x.x-win32-dynamic.zip from http://code.google.com/p/phantomjs/downloads/list

2) Unzip it to, say C:\phantomjs-1.x.x-win32 such that phantomjs.exe is available at
C:\phantomjs-1.x.x-win32\phantomjs.exe

3) Create a file sahi.js in C:\phantomjs-1.x.x-win32 with the content below:

For version 1.2.0 onwards, use:

if (phantom.args.length === 0) {
	console.log('Usage: sahi.js &lt;Sahi Playback Start URL&gt;');
        phantom.exit();
} else {
        //var address = unescape(phantom.args[0]); // use if < v1.7
        var address = phantom.args[0];
	console.log('Loading ' + address);
	var page = new WebPage();
	page.open(address, function(status) {
		if (status === 'success') {
			var title = page.evaluate(function() {
				return document.title;
			});
			console.log('Page title is ' + title);
		} else {
			console.log('FAIL to load the address');
		}
	});
}

For version 1.1.0, use:

if (phantom.state.length === 0) {
    if (phantom.args.length === 0) {
        console.log('Usage: sahi.js &lt;Sahi Playback Start URL&gt;');
        phantom.exit();
    } else {
        var address = unescape(phantom.args[0]);
        phantom.state = "sahi script running";
        console.log('Loading ' + address);
        phantom.open(address);
    }
} else {
    if (phantom.loadStatus == 'success') {
        console.log('Page title is ' + document.title);
    } else {
        console.log('FAIL to load the address');
    }
}

The above code is based on the example provided by PhantomJS

4) Click “Configure” link on Dashboard, and add

<browserType>
	<name>phantomjs</name>
	<displayName>PhantomJS</displayName>
	<icon>safari.png</icon>
	<path>C:\phantomjs-1.1.0-win32\phantomjs.exe</path>
	<options>--proxy=localhost:9999 C:\phantomjs-1.1.0-win32\sahi.js</options>
	<processName>phantomjs.exe</processName>
	<capacity>100</capacity>
	<force>true</force>
 </browserType>

before the ending </browserTypes> tag in browser_types.xml

5) Save and restart Sahi.

6) To run a test in PhantomJS: Click on “Bin” on the dashboard (or navigate to sahi/userdata/bin on a command prompt) and run the command

testrunner.bat demo/sahi_demo.sah http://sahi.co.in/demo/ phantomjs

This will run the Sahi script without opening a browser.




---


Top Rounds