捕获和处理CasperError

时间:2013-12-09 20:52:37

标签: casperjs

使用CasperJS如何捕获和处理CasperError?

默认似乎继续执行程序(除了传播错误之外什么都不做)。

这些错误记录在console / stdout中,但我似乎没有看到(从文档中)捕获和处理这些错误的方法。

示例:

this.fillSelectors(selector, data);

可能产生:

  

CasperError:填写表单时遇到错误:找不到表单

我知道在调用之前我可以检查以确保一切都存在,但有没有办法在事后捕获? (这适用于许多其他操作,如casper.click

3 个答案:

答案 0 :(得分:6)

我使用的东西是这样的:

casper.on('error', function(msg,backtrace) {
  this.capture('./out/error.png');
  throw new ErrorFunc("fatal","error","filename",backtrace,msg);
});

然后我有一个自定义函数ErrorFunc来处理任何警告或致命错误的数组。

如果您点击不成功,则应该抛出casper.on('error')。因此,您可以在其中放置自定义代码,以便处理错误。

这是documentation for Casper events

答案 1 :(得分:1)

var casper = require('casper').create({
        onError: function(msg, backtrace) {
            this.capture('error.png');
            throw new ErrorFunc("fatal","error","filename",backtrace,msg);
        }
    });

这非常有效。 (见http://docs.casperjs.org/en/latest/modules/casper.html#index-1

答案 2 :(得分:0)

这是谁需要它的完整解决方案^^

@angular/http