2013-10-04 11 views
9

casperjsがconsole.logとconsole.errorのサイトをキャッチしようとしています。 console.logの場合、私は作業コードを持っています:casperjsがconsole.logとconsole.errorをキャッチ

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

しかし、私はconsole.errorをキャッチする方法を理解できません。私はリソースのエラーを捕まえるためにこれが必要です(画像が見つからないなど)。

答えて

3

[OK]を、それは自分の質問に答えるのは奇妙だが、私は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 
     }); 
    } 
}); 

作品を

+9

申し訳ありませんが、あなたはこの質問に回答していませんが、これはコンソールメッセージをキャッチしません。 – challet

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"); 
}); 

魅力的な作品! page.errorハンドラもあります

9

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

はあなたがキャッチする必要があるエラーによっては、これは良いかもしれません。