【发布时间】:2012-10-21 12:38:02
【问题描述】:
我正在尝试为网站下载 xls 文件。当我单击链接下载文件时,我得到一个 javascript 确认框。我像下面这样处理它
ConfirmHandler okHandler = new ConfirmHandler(){
public boolean handleConfirm(Page page, String message) {
return true;
}
};
webClient.setConfirmHandler(okHandler);
有一个下载文件的链接。
<a href="./my_file.php?mode=xls&w=d2hlcmUgc2VsbElkPSd3b3JsZGNvbScgYW5kIHN0YXR1cz0nV0FJVERFTEknIGFuZCBkYXRlIDw9IC0xMzQ4MTUzMjAwICBhbmQgZGF0ZSA%2BPSAtMTM1MDgzMTU5OSA%3D" target="actionFrame" onclick="return confirm('Do you want do download XLS file?')"><u>Download</u></a>
我点击链接使用
HTMLPage x = webClient.getPage("http://working.com/download");
HtmlAnchor anchor = (HtmlAnchor) x.getFirstByXPath("//a[@target='actionFrame']");
anchor.click();
handeConfirm() 方法被执行。但我不知道如何从服务器保存文件流。我尝试使用下面的代码查看流。
anchor.click().getWebResponse().getContentAsString();
但是,结果与页面 x 相同。任何人都知道如何从服务器捕获流?谢谢。
【问题讨论】:
-
anchor.click()将返回一个页面。这应该包含您的 XLS 文件 -
在stackoverflow.com/a/28471835/612123查看我对类似问题的回答