PhantomJS is fucking cool. (note: when running under X, use the Xvfb workaround)

Examples of using it: [1] [2]

Tools that build on top of PhantomJS: