Próbuję pobrać plik Xls dla witryny. Kiedy kliknę link, aby pobrać plik, otrzymuję okno potwierdzenia javascript. Obsługuję go poniżej:Pobierz plik przy użyciu narzędzia HtmlUnit
ConfirmHandler okHandler = new ConfirmHandler(){
public boolean handleConfirm(Page page, String message) {
return true;
}
};
webClient.setConfirmHandler(okHandler);
Istnieje łącze do pobrania pliku.
<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>
klikam odnośnik stosując metodę
HTMLPage x = webClient.getPage("http://working.com/download");
HtmlAnchor anchor = (HtmlAnchor) x.getFirstByXPath("//a[@target='actionFrame']");
anchor.click();
handeConfirm() jest uruchamiane. Ale nie mam pojęcia, jak zapisać strumień plików z serwera. Próbowałem zobaczyć strumień z kodem poniżej.
anchor.click().getWebResponse().getContentAsString();
Ale wynik jest taki sam jak strona x. Ktoś wie, jak przechwycić strumień z serwera? Dziękuję Ci.
'anchor.click()' powróci stronę. To powinno contianować twój plik XLS – Lee
zobacz moją odpowiedź na podobne pytanie na http://stackoverflow.com/a/28471835/612123 – culmat