在CasperJS中,我正在使用一个有这样一个按钮的网站:
<a id="showBills"
onclick="javascript:{showBills(); return false;}"
href="#">Show Bills</a>
单击它会生成一个XMLHttpRequest POST消息,其中包含一个充满幻数和状态的大量表单。服务器通过发送我想要捕获的JSON数据结构来响应。
在这种情况下,我不能简单地调用casper.getPageContent()
来获取JSON数据,因为它由客户端解释并合并到DOM中。
我也无法调用casper.download(...)
,因为我无法手动重建POST请求所需的表单数据。
如何“拦截”响应onClick()支持的点击发送的JSON数据?
可能有某种方法可以破坏客户端上的showBills()方法,例如将JSON响应作为普通页面(而不是XMLHttpRequest)发送。但这超出了我对CasperJS,PhantomJS和HTTP协议的理解。