Casperjs Versions Save

CasperJS is no longer actively maintained. Navigation scripting and testing utility for PhantomJS and SlimerJS

1.0.0-RC4

10 years ago

2012-10-31, v1.0.0-RC4

Next version should be 1.0.0 stable.

  • fixed #261 - Impossible to require CoffeeScript modules
  • fixed #262 - Injecting clientScripts is not working
  • fixed #259 - enhanced Tester.assertField() method, which can now tests for other field types than inputs.
  • fixed Casper.getCurrentUrl() could misbehave with encoded urls
  • added Casper.echo() to print a message to the casper console from the remote DOM environment
  • added Casper.waitForText() to wait for a given text to be present in page HTML contents
  • added ClientUtils.getFieldValue()
  • Local CoffeeScript version has been upgraded to 1.4.0

1.0.0-RC3

10 years ago

2012-10-23, v1.0.0-RC3

Important Changes & Caveats

  • the injector module is now deprecated, but kept for backward compatibility purpose.
  • BC BREAK: fixes #220, #237 - added a waitTimeout options, removed defaultWaitTimeout option.
  • BC BREAK (for the better): fixes #249 - default timeout functions don't die() anymore in tests
  • BC BREAK (for the better): merged #188 - Easy access to current response object; You can now access the current response object as the first parameter of step callbacks:
require('casper').create().start('http://www.google.fr/', function(response) {
    require('utils').dump(response);
}).run();

That gives:

$ casperjs dump-headers.js
{
    "contentType": "text/html; charset=UTF-8",
    "headers": [
        {
            "name": "Date",
            "value": "Thu, 18 Oct 2012 08:17:29 GMT"
        },
        {
            "name": "Expires",
            "value": "-1"
        },
        // ... lots of other headers
    ],
    "id": 1,
    "redirectURL": null,
    "stage": "end",
    "status": 200,
    "statusText": "OK",
    "time": "2012-10-18T08:17:37.068Z",
    "url": "http://www.google.fr/"
}

To fetch a particular header by its name:

require('casper').create().start('http://www.google.fr/', function(response) {
    this.echo(response.headers.get('Date'));
}).run();

That gives:

$ casperjs dump-single-header.js
Thu, 18 Oct 2012 08:26:34 GMT

The documentation has been updated accordingly.

Bugfixes & enhancements

  • merged #234 - New Windows Loader written in Batch. Python is no more a requirement for using CasperJS on Windows. New installation instructions are available.
  • a new onWaitTimeout option has been added, to allow defining a default behavior when a waitFor* function times out.
  • Casper.resourceExists() and related functions now checks for non HTTP-404 received responses.
  • fixed #167 - fixed opening truncated/uncomplete root urls may give erroneous HTTP statuses
  • closes #205 - debugHTML() can have a selector passed; added getHTML()
  • closes #230 - added ClientUtils.getElementsBound() and Casper.getElementsBound()
  • fixed #235 - updated Casper.evaluate() to use phantomjs >= 1.6 native one. As a consequence, the injector module is marked as deprecated.
  • fixed #250 - prevent self tests to be run using the standard casper test command
  • fixed #254 - fix up one use of qsa, hit when filling forms with missing elements
  • fixed edge case when current document url couldn't be properly decoded

1.0.0-RC2

10 years ago

2012-10-01, v1.0.0-RC2

Important Changes & Caveats

  • PhantomJS 1.6 is now the minimal requirement, PhantomJS 1.7 is supported.
  • CasperJS continues to ship with its own implementation of CommonJS' module pattern, due to the way it has to work to offer its own executable. While the implementations are nearly the same, 100% compatibility is not guaranteed.

Bugfixes & enhancements

  • fixed #119 - Casper.currentHTTPStatus now defaults to null when resource are loaded using the file:// protocol
  • fixed #130 - added a --no-colors option to the casper test command to skip output coloration
  • fixed #153 - erroneous mouse event results when event.preventDefault() was used.
  • fixed #164 - ability to force CLI parameters as strings (see related documentation).
  • fixed #178 - added Casper.getPageContent() to access raw page body contents on non-html received content-types.
  • fixed #180 - CasperJS tests are now run against a local HTTP test server. A new casper selftest command has been added as well.
  • fixed #189 - fixed invalid XML due to message colorization
  • fixed #197 & #240 - Added new tester methods:
  • fixed #202 - Fix test status timeouts when running multiple suites
  • fixed #204 - Fix for when the url is changed via javascript
  • fixed #210 - Changed escape to encodeURIComponent for downloading binaries via POST
  • fixed #216 - Change clientutils to be able to set a global scope
  • fixed #219 - ease chaining of run() calls (more explanations)
  • fixed #222 & #211 - Change mouse event to include an X + Y value for click position
  • fixed #231 - added --pre and --post options to the casperjs test command to load test files before and after the execution of testsuite
  • fixed #232 - symlink resolution in the ruby version of the casperjs executable
  • fixed #236 - fixed Casper.exit returned this after calling phantom.exit() which may caused PhantomJS to hang
  • fixed #252 - better form.fill() error handling
  • added ClientUtils.getDocumentHeight()
  • added toString() and status() methods to Casper prototype.

1.0.0-RC1

10 years ago

2012-06-26, v1.0.0-RC1

PhantomJS 1.5 & 1.6

PhantomJS >= 1.6 supported features

  • added support of custom headers sending in outgoing request - refs #137)
  • added support for prompt() and confirm() - closes #125
  • fixed #157 - added support for PhantomJS 1.6 WebPage#zoomFactor
  • added url.changed & navigation.requested events - refs #151

0.6.10

10 years ago

2012-06-04, v0.6.10

  • fixed #73 - Casper.download() not working correctly with binaries
  • fixed #129 - Can't put // comments in evaluate() function
  • closed #130 - Added a Dummy colorizer class, in order to disable colors in console output
  • fixed #133 - updated and fixed documentation about extensibility
  • added Casper.clickLabel() for clicking on an element found by its innerText content

As a side note, the official website monolithic page has been split across several ones: http://casperjs.org/

0.6.9

10 years ago

2012-05-29, v0.6.9

  • BC BREAK: PhantomJS 1.5 is now the minimal PhantomJS version supported.
  • fixed #114 - ensured client-side utils are injected before any evaluate() call
  • merged #89 - Support for more mouse events (@nrabinowitz)
  • added a new error event, better error reporting
  • fixed #117 - fill() coulnd't submit() a form with a submit input named submit
  • merged #122 - allow downloads to be triggered by more than just GET requests
  • closed #57 - added context to emitted test events + complete assertion framework refactor
  • fixed loaded resources array is now reset adequately reference discussion
  • fixed incomplete error message logged when passed an erroneous selector (xpath and css)

0.6.8

10 years ago

2012-05-20, v0.6.8

  • added support for XPath selectors
  • added Tester.assertNotEquals() (@juliangruber)
  • fixed #109 - CLI args containing = (equals sign) were not being parsed properly

0.6.7

10 years ago

2012-05-12, v0.6.7

  • fixes #107: client utils were possibly not yet being injected and available when calling Capser.base64encode() from some events
  • merged PR #96: make python launcher use os.execvp() instead of subprocess.Popen() (@jart):

    This patch fixes a bug where casperjs' python launcher process won't pass along kill signals to the phantomjs subprocess. This patch works by using an exec system call which causes the phantomjs subprocess to completely replace the casperjs parent process (while maintaining the same pid). This patch also has the added benefit of saving 10 megs or so of memory because the python process is discarded.

  • fixes #109 - CLI args containing = (equals sign) were not parsed properly
  • fixes #100 & #110 - googlepagination sample was broken
  • merged #103 - added Tester.assertNotEquals method (@juliangruber)

0.6.6

10 years ago

2012-04-27, v0.6.6

  • BC BREAK:: moved the page.initialized event to where it should have always been, and is now using native phantomjs onInitialized event
  • fixed #95 - Tester.assertSelectorExists was broken

0.6.5

10 years ago

2012-03-28, v0.6.5

  • BC BREAK: reverted 8347278 (refs #34 and added a new clear() method to close a page You now have to call casper.clear() if you want to stop javascript execution within the remote DOM environment.
  • BC BREAK: removed fallbackToHref option handling in ClientUtils.click() (refs #63)
  • tester.findTestFiles() now returns results in predictable order
  • added --log-level and --direct options to casper test command
  • fixed 0.6.4 version number in bootstrap.js
  • centralized version number to package.json
  • ensured compatibility with PhantomJS 1.5