CasperJS is an open source navigation scripting & testing utility
written in Javascript for the PhantomJS WebKit headless browser and
SlimerJS (Gecko). It eases the process of defining a full navigation
scenario and provides useful high-level functions, methods & syntactic
sugar for doing common tasks such as:
defining & ordering browsing navigation steps
filling & submitting forms
clicking & following links
capturing screenshots of a page (or part of it)
testing remote DOM
logging events
downloading resources, including binary ones
writing functional test suites, saving results as JUnit XML
scraping Web contents