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

Jump to the next step on step timeout in CasperJS

本文关键字:超时 下一步 CasperJS      更新时间:2023-09-26

我想跳过Casperjs脚本中的一个步骤,当运行该步骤需要很长时间时。我使用了(跳过步骤)中建议的解决方案,并添加了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 的值。所以它会导致崩溃的幻像(带有分段错误)。

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

版本 1.1 中的新功能绕过给定数量的已定义导航步骤: this.bypass();

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