Quick nit: you can take screenshots with PhantomJS [0], exposed in casperjs as `capture` [1]
[0] http://phantomjs.org/screen-capture.html
[1] http://docs.casperjs.org/en/latest/modules/casper.html#captu...
[0] http://phantomjs.org/screen-capture.html
[1] http://docs.casperjs.org/en/latest/modules/casper.html#captu...
Sorry, that's my fault for not going into more detail :)
The big issue I have with PhantomJ's screenshots is that it doesn't support web fonts, and so pages don't render correctly.