1

我需要同时运行 3 个 url 请求。我想运行 3 个 casper 实例,每个实例获取一个 url。作为一个简单的例子,我尝试了 2 个实例。

var casper=require('casper').create();
casper.start('http://www.google.com');

var casper1=require('casper').create();
casper1.start('http://www.google.com');

casper1.then(function() {
    casper1.echo('inside');
});
casper1.echo('outside');

casper1.run();
casper.run();

输出仅显示“外部”。为什么它不运行 casper1.echo('inside');

4

1 回答 1

2

CasperJS 使用一组命令,这些命令在您使用其 api 中的一个函数(start、then、thenOpen 等)时创建。一旦所有项目都在堆栈中排队,您可以通过执行 casper.run() 来按顺序执行它们。如果没有添加到堆栈中,Casper 将不会执行它。

简单地说, casper1.echo('outside') 没有被执行,因为它从未被添加到堆栈中。

他们关于该主题的常见问题解答更详细地对其进行了细分。

于 2013-04-10T05:11:46.673 回答