10 votes

Comment obtenir le code d'état http de casper.js ?

J'ai un code simple ci-dessous :

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();
});

Y a-t-il un moyen d'attraper http.status quel que soit le code ? Pour l'instant, je peux voir dans la documentation la façon d'attraper un événement de code spécifique. Et si je veux juste voir ce que c'est ?

12voto

thtsigma Points 1284

Que pensez-vous de ceci (tiré du Docs ):

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();
});

4voto

Ian Hunter Points 2114

Le module de test a un assertHttpStatus méthode. Extrait de la documentation 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();
    });
});

3voto

swifty Points 1089

Je pense que c'est un peu plus facile depuis la version 1.0.

C'est ainsi que je l'ai réalisé :

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();
    });
});

0voto

abdel Points 390
casper.start('http://google.fr/', function() {
    var res = this.status(false);
    this.echo(res.currentHTTPStatus);
});

casper.run();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X