【问题标题】:Casperjs catch console.log and console.errorCasperjs 捕获 console.log 和 console.error
【发布时间】:2016-04-13 15:55:32
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript casperjs


    【解决方案1】:

    还有page.error 处理程序:

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

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

    【讨论】:

      【解决方案2】:

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

      效果很好

      【讨论】:

      • 抱歉,您没有回答问题,这不会捕获控制台消息。
      【解决方案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");
      });
      

      像魅力一样工作!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-25
        • 2012-07-09
        • 2020-04-29
        • 1970-01-01
        • 2018-12-07
        • 2020-07-29
        • 2022-01-05
        • 1970-01-01
        相关资源
        最近更新 更多