如何获得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();