Casperjs捕获console.log和console.error

Pio*_*cik 9 javascript casperjs

我试图通过casperjs捕获站点console.log和console.error.在console.log的情况下,我有工作代码:

casper.on('remote.message', function(message) {
    this.echo('remote message caught: ' + message);
});
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何捕捉console.error.我需要这个来捕获任何资源错误(比如找不到图像).

Beo*_*tor 10

还有page.error处理程序:

casper.on("page.error", function(msg, trace) {
     this.echo("Error: " + msg, "ERROR");
});
Run Code Online (Sandbox Code Playgroud)

根据您需要捕获的错误,这可能会更好.


Pio*_*cik 3

好吧,回答我自己的问题很奇怪,但我在 dpashkevich 发布的 coderwall 博客上找到了解决方案:

casper.on('resource.received', function(resource) {
    var status = resource.status;
    if(status >= 400) {
        casper.log('Resource ' + resource.url + ' failed to load (' + status + ')', 'error');

        resourceErrors.push({
            url: resource.url,
            status: resource.status
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

作品精彩

  • 抱歉,但您没有回答问题,这不会捕获控制台消息。 (10认同)