【发布时间】:2026-02-19 00:20:05
【问题描述】:
当运行该步骤所需的时间太长时,我想跳过我的 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 崩溃(有分段错误)。
我找不到任何其他解决方案来跳过当前步骤并继续下一步。还有其他方法吗?还有其他建议吗?!
【问题讨论】:
-
this.mainPage.stop()适合你吗? -
我试过了。它也不起作用。无论如何感谢您的建议。
-
如果你想重现它,here 是一段代码,与我朋友在 Casperjs 问题上发送的相同问题。
标签: javascript phantomjs casperjs headless-browser