CasperJS is an open source navigation scripting & testing utility written in Javascript and based on PhantomJS — the scriptable headless WebKit engine. 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