casperjs/casperjs
github: https://github.com/casperjs/casperjs
Star: 5978
Fork: 945
Watch: 287
Up to 2016.09.22
CasperJS
CasperJS is a navigation scripting & testing utility for PhantomJS and SlimerJS (still experimental). 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 navigation steps
- filling forms
- clicking links
- capturing screenshots of a page (or an area)
- making assertions on remote DOM
- logging & events
- downloading resources, even binary ones
- catching errors and react accordingly
- writing functional test suites, exporting results as JUnit XML (xUnit)
Browse the sample examples repository. Don't hesitate to pull request for any cool example of yours as well!
Read the full documentation on casperjs documentation website.
Subscribe to the project mailing-list
Follow the CasperJS project on twitter and Google+.
Show me some code!
First install CasperJS, we'll use 1.1 beta here.
Sample test to see if some dropdown can be opened:
casper.test.begin('a twitter bootstrap dropdown can be opened', 2, function(test) {
casper.start('http://getbootstrap.com/2.3.2/javascript.html#dropdowns', function() {
test.assertExists('#navbar-example');
this.click('#dropdowns .nav-pills .dropdown:last-of-type a.dropdown-toggle');
this.waitUntilVisible('#dropdowns .nav-pills .open', function() {
test.pass('Dropdown is open');
});
}).run(function() {
test.done();
});
});
Run the script:

Support
Help request. If you're stuck using CasperJS and don't understand how to achieve something, please ask on the mailing-list first. If the discussion reveals that you have found a real issue that might need a change within CasperJS, file an issue.
Filing issues. It takes a lot of time to review, validate, and de-duplicate filed issues. This time could be spent better on actually improving on CasperJS. Filing an issue might be a helpful contribution, but we expect you to read our CONTRIBUTING.md guidelines first.
Professional Support. Need help with getting CasperJS up and running? Got a time-consuming problem you want to get solved quickly?
Try to find someone to address your specific problem and post a reward at bountysource.
If you need to have a known issue resolved and don't have the time or skills to do it on your own, you could post a reward for any open issue directly.