最佳答案
我使用 CasperJS 来自动化一系列的点击,完成表单,解析数据等通过一个网站。
Casper 似乎被组织成 then
语句形式的预设步骤列表(参见这里的例子: http://casperjs.org/quickstart.html) ,但是不清楚什么触发下一个语句实际运行。
例如,then
是否等待所有挂起的请求完成?injectJS
算是未决请求吗?如果我有一个嵌套链接到 open
语句末尾的 then
语句,会发生什么情况?
casper.thenOpen('http://example.com/list', function(){
casper.page.injectJs('/libs/jquery.js');
casper.evaluate(function(){
var id = jQuery("span:contains('"+itemName+"')").closest("tr").find("input:first").val();
casper.open("http://example.com/show/"+id); //what if 'then' was added here?
});
});
casper.then(function(){
//parse the 'show' page
});
我正在寻找一个技术解释如何在 CasperJS 的流程工作。我的具体问题是,我的最后一个 then
语句(上面)运行在我的 casper.open
语句之前,我不知道为什么。