如何获得casper.js http.status代码?

我有以下简单的代码:

var casper = require("casper").create({ }), utils = require('utils'), http = require('http'), fs = require('fs'); casper.start(); casper.thenOpen('http://www.yahoo.com/', function() { casper.capture('test.png'); }); casper.on('http.status.404', function(resource) { this.echo('wait, this url is 404: ' + resource.url); }); casper.run(function() { casper.exit(); }); 

有没有办法赶上http.status代码,不pipe它是什么? 现在我可以在文档中看到如何捕捉特定的代码事件。 如果我只想看看它是什么呢?

这怎么样(从文件 ):

 var casper = require("casper").create({ }), utils = require('utils'), http = require('http'), fs = require('fs'); casper.start(); casper.thenOpen('http://www.yahoo.com/', function(response) { casper.capture('test.png'); utils.dump(response.status); if (response == undefined || response.status >= 400) this.echo("failed"); }); casper.on('http.status.404', function(resource) { this.echo('wait, this url is 404: ' + resource.url); }); casper.run(function() { casper.exit(); }); 

我认为这个从1.0开始就更容易一些。

我就是这样实现的:

 casper.test.begin("load google!", function (test) { casper.start(); casper.open("http://www.google.co.uk"); casper.then(function () { var res = this.status(false); test.assert(res.currentHTTPStatus === 200, "homepage returns a 200 status code"); }); casper.run(function() { this.test.done(); }); }); 

testing模块有一个assertHttpStatus方法。 从1.1.0-DEV文档

 casper.test.begin('casperjs.org is up and running', 1, function(test) { casper.start('http://casperjs.org/', function() { test.assertHttpStatus(200); }).run(function() { test.done(); }); }); 
 casper.start('http://google.fr/', function() { var res = this.status(false); this.echo(res.currentHTTPStatus); }); casper.run();