gozer is a phantomJS wrapper. It can do normal phantomJS stuff, using promises:
var Gozer = require('gozer');
// Load an instance pointed at http://localhost:3000
var gozer = new Gozer({port: 3000});
// Get a page
var page = gozer.visit('/');
// Do some stuff with the page
page
.run(function() {
return document.title;
})
.then(function(title) {
console.log('The page title is', title);
});
but that's not why we built it. We built gozer to test our CSS, so it really shines when it's used in a test framework. Here's an example using mocha and chai-as-promised:
var Gozer = require('gozer');
describe('google.com', function() {
var gozer, page;
before(function() {
gozer = new Gozer({host: 'google.com'});
});
describe('the homepage', function() {
beforeEach(function() {
page = gozer.visit('/');
});
it('uses the arial font', function() {
var fontPromise = page.getStyle('body', 'font-family');
return expect(fontPromise).to.eventually.have.string('arial');
});
});
});
For more examples, check out gozer's own tests.
Gozer is meant to be used as a node module, so it's as simple as
npm install gozer