我需要同时运行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();
输出只显示'outside'。为什么它不运行casper1.echo('inside');
答案 0 :(得分:2)
CasperJS使用一堆命令,无论何时使用api中的一个函数(start,then,thenOpen等),都会创建这些命令。一旦所有项目在堆栈中排队,您就可以通过执行casper.run()来按顺序执行它们。如果没有将某些内容添加到堆栈中,Casper将不会执行它。
简单地说,casper1.echo('outside')没有被执行,因为它从未被添加到堆栈中。
关于该主题的他们FAQ会更详细地分解它。