CasperJS 脚本永远不会退出

CasperJS script never exits

我的 CasperJS 脚本从未停止执行。

var casper = require('casper').create();

casper.userAgent('Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36');

casper.start('https://www.google.co.in/',function(){    
  casper.wait(3000,function(){
    this.echo(this.getTitle());
  });
});
casper.run();

看起来 CasperJS 似乎永远不会退出。这只是 windows 上的一个问题。你可能会看到这样的东西:

C:\> casperjs script.js

C:\> Some script output
More script output
_

与CasperJS的安装和调用方式有关。当您安装了 cygwin 之类的东西,然后通过 NPM 安装 CasperJS 时,通常会发生这种情况。 NPM 将检测到您有 cygwin 并创建一个特殊的批处理文件来启动 CasperJS。整个情况的处理方式存在一个错误,但它不会影响 CasperJS 的功能。

如果你按回车,你会再次看到提示:

C:\> casperjs script.js

C:\> Some script output
More script output

C:\> _

如果您在 GitHub 的主分支上使用 CasperJS,您将获得一个正确的 exe 文件,该文件可以在没有这些问题的情况下执行。参见 Installing from git。这样做的好处是您现在可以使用 PhantomJS 2,因为当前版本 1.1-beta3 无法使用。

尝试为您添加退出 运行 方法。

casper.run(function() {
  this.exit();
});