跳转到CasperJS中的步骤超时的下一步

时间:2015-01-22 05:53:46

标签: javascript phantomjs casperjs headless-browser

我想跳过Casperjs脚本中的一个步骤,因为运行该步骤需要很长时间。我使用了(skip step)中建议的解决方案,并添加了stepTimeout和onStepTimeout处理程序。以下是执行此操作的代码:

var casper = require("casper").create({
  verbose: true,
  stepTimeout: 10000,
  pageSettings: {
    loadImages: false,
    loadPlugins: false,
    ignoreSslErrors: true,
    userAgent: 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36'
  },
  onStepTimeout: function() {
    this.echo("Step " + this.step + "timed out ");
    this.echo("Step .page" + this.step.page + "---- ");
    this.clear();
    this.page.stop();

  }

});

其余代码只会打开一个URL列表。问题是,对于某些情况,例如打开此URL Google Desktop,当打开它需要的时间超过指定的超时时,会触发onStepTimeout事件,但未定义this.page的值。因此它会导致phantomjs崩溃(带有分段错误)。

我无法找到任何其他解决方案来跳过当前步骤并继续下一步。还有其他办法吗?还有其他建议吗?!

1 个答案:

答案 0 :(得分:0)

New in version 1.1 绕过给定数量的已定义导航步骤: this.bypass();

onStepTimeout: function(){
  this.bypass(1);
}