Hi, ich möchte das folgende Formular mittels HTMLUNIT 2.9 auführen/absenden:
(Es generiert einen Link zu einer Datei.Beim Klicken auf den Downloadbutton, ließt er den von mir eingegeben DateiLink, läd die Datei auf den Server der Seite und öffnet mir direkt ein Downloadfenster
wo ich die Datei auf der Platte speichern kann)
Dazu habe ich folgenden JAV Code geschrieben:
Meiner Meinung nach müsste ich alle "inputs" des Formulars füllen oder?
Also die 3 hier:
input type="text" name="link"
input name="sessid" value="hutnu5ocbfe340ub9l1ep4djb2"
input type="checkbox" name="premium_acc" Wie wird ein CheckboxValue gesetzt?
Wenn ich die Inputparameter gesetzt habe, muss ich den Button des Formulars input value="Direct download" betätigen oder?
Allerdings bekomme ich dann die nächste Seite zurück und nicht die Datei. Das liegt wahrscheinlich daran, dass die Datei direkt zum Speichern angeboten wird. Weiß jemand wie ich dieses Fenster abfangen kann?
(Es generiert einen Link zu einer Datei.Beim Klicken auf den Downloadbutton, ließt er den von mir eingegeben DateiLink, läd die Datei auf den Server der Seite und öffnet mir direkt ein Downloadfenster
wo ich die Datei auf der Platte speichern kann)
HTML:
</form>
<script type="text/javascript">
function dl_direct()
{
document.getElementById('peppeeppeeppepppe_more_p_and_e_and_so_on').action = '/';
document.getElementById('peppeeppeeppepppe_more_p_and_e_and_so_on').submit();
}
function default_download()
{
document.getElementById('peppeeppeeppepppe_more_p_and_e_and_so_on').action = '/?type=tp';
document.getElementById('peppeeppeeppepppe_more_p_and_e_and_so_on').submit();
}
</script>
<div align="center" style="">
<input type="hidden" name="freedisk" value="19630088192" />
<form action="/" id="peppeeppeeppepppe_more_p_and_e_and_so_on" name="transload" method="post">
<div style="display:block;margin:0 auto;text-align:center"> <input type="text" name="link" style="width: 300px" /></div>
<input name="sessid" value="hutnu5ocbfe340ub9l1ep4djb2" type="hidden" />
<div style="display:block;margin:0 auto;text-align:center"><input value="Direct download" type="button" onclick="dl_direct();" /><input value="Download through server"disabled="disabled" type="button" onclick="default_download();" style="margin-left:20px;" /></div>
<input type="checkbox" name="premium_acc" checked="checked" style="display:none" />
</form>
Dazu habe ich folgenden JAV Code geschrieben:
Java:
// Create and initialize WebClient object
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3.6);
webClient.setThrowExceptionOnScriptError(false);
webClient.setRefreshHandler(new RefreshHandler() {
public void handleRefresh(Page page, URL url, int arg) throws IOException {
System.out.println("handleRefresh");
}
});
HtmlPage currentPage =
webClient.getPage(dieSeite);
//Enable JavaScript
currentPage.getWebClient().setJavaScriptEnabled(true);
// Execute JavaScript
//ScriptResult result = currentPage.executeJavaScript(JavaScriptCode);
//Cookies
Set cookies = webClient.getCookieManager().getCookies();
for (Cookie cookie : cookies) {
System.out.println(cookie.getName() + " = " + cookie.getValue());
}
//Response HEaders
List headers =
currentPage.getWebResponse().getResponseHeaders();
for (NameValuePair header : headers) {
System.out.println(header.getName() + " = " + header.getValue());
}
//Request parameters
List headers =
currentPage.getWebResponse().getResponseHeaders();
for (NameValuePair header : headers) {
System.out.println(header.getName() + " = " + header.getValue());
}
HtmlForm form = currentPage.getFormByName("transload");
// Enter Link
form.getInputByName("link").setValueAttribute(derLinkDerÜbergebenWerdenSoll);
//form.getInputByName("sessid").setValueAttribute("on");
//form.getInputByName("premium_acc").setValueAttribute("checked");
// Click button/link
currentPage = (HtmlPage) form.getInputByValue("Direct download").click();
System.out.println(page.asXml());
Meiner Meinung nach müsste ich alle "inputs" des Formulars füllen oder?
Also die 3 hier:
input type="text" name="link"
input name="sessid" value="hutnu5ocbfe340ub9l1ep4djb2"
input type="checkbox" name="premium_acc" Wie wird ein CheckboxValue gesetzt?
Wenn ich die Inputparameter gesetzt habe, muss ich den Button des Formulars input value="Direct download" betätigen oder?
Allerdings bekomme ich dann die nächste Seite zurück und nicht die Datei. Das liegt wahrscheinlich daran, dass die Datei direkt zum Speichern angeboten wird. Weiß jemand wie ich dieses Fenster abfangen kann?