如何在 CasperJS 中单击注销作为终结器

How to click Logout as finalizer in CasperJS

我正在创建一个需要登录身份验证的网络抓取工具(在 CasperJS 中使用 JavaScript)。但是我需要它在脚本末尾单击注销link,即使进程抛出错误,例如在试用期间可能经常出现的不存在的元素错误发展。该行为类似于 Java 的 finally {} 块。

此行为是必需的,因为网络只允许每个用户进行一次会话。如果我不点击注销,下一个爬虫调用必须等待 5 分钟才能使上一个会话过期,这不好。

我应该把注销点击放在哪里?

您可以将 casper.options.exitOnError 属性 设置为 false 让脚本继续执行,最终会执行您的注销点击。

var casper = require('casper').create({
    exitOnError: false,
});

casper.options.exitOnError = false;

这仅适用于 PhantomJS 1.x,因为当找不到选择器时 PhantomJS 2 不会抛出错误。 CasperJS 在这种情况下就停止了。