Jellyfish -- Browser launcher and Javascript execution engine.
Jellyfish bridges the gap between server and client side javascript by allowing
control of all the major browsers from a node script.
From running unit tests across platforms, to automating browser based workflows,
jellyfish aims to free javascript from the confines of a single environment.
Install
npm install jellyfish
Or from source:
git clone git://github.com/admc/jellyfish.git
cd jellyfish
npm link .
Platforms
MacOSX 10.6
Ubuntu 10.x
Browsers
Firefox 3.x, 4b
Google Chrome
Safari (MacOSX)
Selenium 2/WebDriver
Sauce Labs OnDemand
Zombie (headless node.js browser)
(Provides hooks to Saucelabs OnDemand platform allowing execution in
all major browsers.)
Usage
npm require
var jellyfish = require('jellyfish'),
, assert = require('assert');
init a browser (createFirefox, createChrome, createZombie)
var browser = jellyfish.createFirefox();
goto a web site
browser.go("http://www.jelly.io")
verify the title
.js("document.title", function(o) {
assert.equal(o.result, "Jelly.io: Jellyfish Home")
})
run some local javascript
.jsfile("./test.js", function(o) {
assert.equal(o.result, "alerted: Jellyfish local file loaded successfully!")
})
run some remote javascript, stop the browser, then exit
.jsurl("http://jelly.io/test.js", function(o) {
assert.equal(o.result, "alerted: Jellyfish remote file loaded successfully!")
browser.stop(function() {
setTimeout(process.exit(), 2000);
})
})
Reporting
var jellyfish = require('jellyfish')
var browser = jellyfish.createFirefox(function(){
browser.couch({uri:'my couch url', port:5984, db:'mydbname'})
});
// You can just do browser.couch() and it will default to:
// {uri:'localhost', port:5984, db:'jellyfish'}
// Do stuff and it will automatically get reported to couch!
~/.jfrc
{
, "firefox": "/path/to/binary" //binary path to firefox if you want to set it manually
, "chrome": "path/to/binary" //binary path
, "safari": "path/to/binary" //binary path
, "interface": "Airport" // required for safari testing (proxy setting)
, "username": "username" //sauce labs username
, "accessKey": "apikey" //sauce labs apikey
, "browserName": "firefox" //sauce labs default browser
, "version": "4.0" // sauce labs default browser version
}