示例Casper JS脚本不起作用

Sample Casper JS Script does not work

本文关键字:不起作用 脚本 JS Casper 示例      更新时间:2023-11-01

UPDATE:我找到了解决方案,但忘记添加

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

顶部。

原问题:我安装了phantom js 1.9.2和casper js 1.0.3。此外,我直接从casper-js教程页面复制并粘贴了以下示例脚本:

casper.start('http://www.google.fr/', function() {
    var url = 'http://www.google.fr/intl/fr/about/corporate/company/';
    this.download(url, 'google_company.html');
});
casper.run(function() {
    this.echo('Done.').exit();
});

这是我的mac操作系统上的输出:

bin Tom$ ./casperjs ../site_loader.js 
2013-11-26 18:53:20.375 phantomjs[2136:130b] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead. 
ReferenceError: Can't find variable: casper
  ../site_loader.js:1
Hint: you may want to use the `casperjs test` command.
^C

我必须手动取消它,否则它永远不会停止。然而,运行建议的命令会产生:

bin Tom$ ./casperjs test
2013-11-26 18:54:01.504 phantomjs[2137:130b] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead. 
No test path passed, exiting.

这里有什么不正确的地方?

首先,您需要创建一个casper实例来使用,然后您编写的所有内容都可以使用!

// sample.js
var casper = require('casper').create();
casper.start('http://www.google.fr/', function() {
    var url = 'http://www.google.fr/intl/fr/about/corporate/company/';
    this.download(url, 'google_company.html');
});
casper.run(function() {
    this.echo('Done.').exit();
});

输出:

C:'Users'hello'Desktop>caperjs sample.js
Done.
C:'Users'hello'Desktop>ls -alt
-rwx------ hello mkpasswd 91 Nov 28 09:11 google_company.html 
...