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.
npm install jellyfish
Or from source:
git clone git://github.com/admc/jellyfish.git cd jellyfish npm link .
MacOSX 10.6
Ubuntu 10.x
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.)
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); }) })
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!
{ , "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 }