PhantomJS is a headless browser based on WebKit. (A headless browser runs without a user interface)
To run Sahi headless on PhantomJS:
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.1.0, use:
if (phantom.state.length === 0) {
if (phantom.args.length === 0) {
console.log('Usage: sahi.js <Sahi Playback Start URL>');
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');
}
}
For version 1.2.0 onwards, use:
if (phantom.args.length === 0) {
console.log('Usage: sahi.js <Sahi Playback Start URL>');
phantom.exit();
} else {
var address = unescape(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');
}
});
}
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.