9

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

casper.on('remote.message', function(message) {
    this.echo('remote message caught: ' + message);
});

但我不知道如何捕捉console.error。我需要这个来捕捉任何资源错误(比如找不到图像)。

4

3 回答 3

10

还有page.error处理程序:

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

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

于 2016-04-13T07:55:32.340 回答
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
        });
    }
});

工作出色

于 2013-10-05T12:05:29.577 回答
3

您可以使用以下事件来获取远程错误:

casper.on("resource.error", function(resourceError) {
    this.echo("Resource error: " + "Error code: "+resourceError.errorCode+" ErrorString: "+resourceError.errorString+" url: "+resourceError.url+" id: "+resourceError.id, "ERROR");
});

像魅力一样工作!

于 2015-05-05T12:07:49.400 回答