2015-04-01 100 views
3

我的CasperJS脚本永远不会停止执行。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(); 

回答

5

它看起来好像CasperJS从不退出。这只是Windows上的一个问题。您可能会看到类似这样的内容:

C:\> casperjs script.js 

C:\> Some script output 
More script output 
_ 

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

如果按Enter键,你会看到再次提示:

C:\> casperjs script.js 

C:\> Some script output 
More script output 

C:\> _ 

如果你会使用CasperJS从GitHub上的主分支,你会得到它的执行没有这些问题的正确的exe文件。请参阅Installing from git。这样做的好处是您现在可以使用PhantomJS 2,因为目前版本1.1-beta3无法使用PhantomJS 2。

+1

不是cygwin,而是使用BASH。我认为我的风格有问题,或者我错过了一些东西。感谢您的描述性答复。 – Kunal0615 2015-04-02 06:37:31

0

尝试在你的run方法中添加exit。

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

这不起作用我已经试过这.... – Kunal0615 2015-05-29 09:16:19