如果页面打开,Casperjs将测试

时间:2014-07-18 06:00:58

标签: javascript phantomjs casperjs

可以使用这样的纯幻影来完成:

var page = require('webpage').create();
var address = 'http://google.com/';
page.open(address, function(status) {
  if (status !== 'success') {
    console.log('FAIL to load the address');
  } else {
    console.log('SUCCESS');
  }
  phantom.exit();
});

但我希望它支持casperjs test命令。我想出的最好的是:

casper.test.begin("Hello, Test!", 1, function(test) {
    var page = require('webpage').create();
    var address = 'http://google_doesnotexist.com/';
    page.open(address, function(status) {
        test.assert(status == 'success');
        //phantom.exit();
        test.done();
    });
});

如果页面确实打开,它可以正常工作,但如果页面没有打开,脚本根本不会停止。

2 个答案:

答案 0 :(得分:3)

除了own answer之外,您还可以通过status function明确检查状态:

casper.start("http://www.example.com/", function() {
    test.assert(this.status().currentHTTPStatus == 200);
});

甚至更容易使用tester module,因为您已经这样做了:

casper.start("http://www.example.com/", function() {
    test.assertHttpStatus(200);
});

答案 1 :(得分:0)

casperjs docs中没有函数参数的例子,但我猜对了:)

casper.test.begin('Page opens fine', 1, function suite(test) {
    casper.start("http://www.google_nononon.com/", function(result) {
        //console.log(status);
        //require('utils').dump(status);
        test.assert(result.status == 200);
    });

    casper.run(function() {
        test.done();
    });
});