我正在使用CasperJS处理我的银行对账单的废话,到目前为止我已经设法登录并进入报表页面。我完成了使用声明的第一页获取表格,但我需要完成它。
银行的网站可以选择导出到.txt文件(实际上是一种CSV),但为了下载它,我必须能够下载作为附件的文件作为附件出现在单击按钮提交表单时的POST请求。
所以我想我可以通过AJAX进行POST,得到响应并输出它。我尝试在firebug控制台上运行代码并且它可以工作,但由于某种原因它在CasperJS中不起作用。
顺便说一句,我尝试过使用--web-security = no,仍然无法正常工作
这就是我尝试这样做的方式:
this.then(function() {
eurl = "http://bankurl.com";
response = this.evaluate(function() {
params = $("#lForm").serialize();
$.ajax({
type: "POST",
url: eurl,
data: params,
success: function (data) {
return data.responseText;
},
error: function (xhr,status,error){
return error;
}
});
});
this.echo(response);
});
答案 0 :(得分:1)
我无法使用您提供的代码对此进行测试,但看起来您似乎没有从evaluate()
返回任何内容。
return __utils__.sendAJAX(url, 'POST', params);
您可能还需要使用以下内容调用CasperJS:
casperjs --ignore-ssl-errors=true /path/to/script.js
答案 1 :(得分:1)
好吧,在努力寻找解决方法之后我终于做到了,我只是将ajax调用放在try catch中,发现错误是它没有读取eurl变量(我在评估之外声明了它) 。我把它放在里面,它工作。谢谢你的帮助