http://phantomjs.org/
PhantomJS is an optimal solution for:
Access webpages and extract information using the standard DOM API, or with usual libraries like jQuery.
Programmatically capture web contents, including SVG and Canvas. Create web site screenshots with thumbnail preview.
Run functional tests with frameworks such as Jasmine, QUnit, Mocha, WebDriver, etc.
Monitor page loading and export as standard HAR files. Automate performance analysis using YSlow and Jenkins.