Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Casperjs catch console.log和console.error_Javascript_Casperjs - Fatal编程技术网

Javascript Casperjs catch console.log和console.error

Javascript Casperjs catch console.log和console.error,javascript,casperjs,Javascript,Casperjs,我正在尝试通过casperjs捕获site console.log和console.error。对于console.log,我有工作代码: casper.on('remote.message', function(message) { this.echo('remote message caught: ' + message); }); 但我不知道如何捕捉console.error。我需要这个来捕获任何资源错误(如未找到图像)。好的,回答我自己的问题很奇怪,但我在dpashkevich

我正在尝试通过casperjs捕获site console.log和console.error。对于console.log,我有工作代码:

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

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

好的,回答我自己的问题很奇怪,但我在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
        });
    }
});

Works brilliant

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

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

还有处理程序:


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

抱歉,您没有回答问题,此错误不会捕获控制台消息。
casper.on("page.error", function(msg, trace) {
     this.echo("Error: " + msg, "ERROR");
});