# HTMLUnit arbeit sehr langsam . Alternative?



## Jake2.0 (9. Jan 2009)

Hey Java-Forum,

Muss derzeit eine Website "fernsteuern".
Soweit ich gelesen hab geht das am besten mit der HTMLUnit.
Habe mir diese runtergeladen und mal ein kleines Login-Programm geschrieben.
Allerdings arbeitet es sehr langsam.

So braucht es 2,7 Sekunden um sich einzuloggen.
Um dann auf der Seite einen weiteren Link zu öffnen dauert es min. weiter 0,8 Sekunden.
Da bin ich mit Firefox per Hand fast genauso schnell wenn ich mich beeile.

Kann man die HTMLUNIT irgendwie "beschleunigen"?

Oder gibt es eine Alternative die schneller arbeitet?

Thx für Antworten

Jake

Ps.: Anbei der Code mit dem ich mich einlogge für Verbesserungsvorschläge


```
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3);
webClient.setJavaScriptEnabled(false);
webClient.setCssEnabled(false);
HtmlPage page = null;
long time1=System.currentTimeMillis();
try {
    	 page =  webClient.getPage("(Website)");
	    	 
    	 System.out.println(page.getTitleText()); 
    	 List<HtmlForm> forms = page.getForms();
	 HtmlForm form = forms.get(0);
	 HtmlTextInput textField = (HtmlTextInput) form.getInputByName("(Email-Adresse)");
	 textField.setValueAttribute("(LoginName)");
	 HtmlPasswordInput textField2 = (HtmlPasswordInput) form.getInputByName("(Passwort)");
	 textField2.setValueAttribute("(Pw)");
	 HtmlSubmitInput button = (HtmlSubmitInput) form.getInputByName("login");
	   	  
	 HtmlPage page2 = (HtmlPage) button.click();
	    	 
	 System.out.println(page2.getBody().asText());
	 
} catch ( Exception e) {}

long time2=System.currentTimeMillis()-time1;
System.out.println(time2);
```


----------



## kama (9. Jan 2009)

Hi,

schon mal JWebUnit angeschaut....fand ich einfacher.....
Na ja und die Geschwindigkeit liegt dann wohl auch an der Applikation oder ?

MfG
Karl Heinz Marbaise


----------



## Jake2.0 (9. Jan 2009)

Naja ... 
aber ist halt die Frage ... 
ist HTMLUnit generell sooo langsam?!
Die Applikation besteht nicht aus viel mehr, als den oben gezeigten Code.
Also schneller vom Code her geht nicht, da ich ja nix anderes machen außer einloggen.
Nur vielleicht ließe sich die HTMLUnit noch irgendwie beschleunigen?

Und ist JWebUnit schneller ?!
Aber werds mir auf jeden Fall anschauen.

Thx

Jake

// edit: Habs grad mal mit jWebUnit ausprobiert.
Dort funktioniert der Login gar nicht.
Kann es sein das jWebUnit keine Cookies akzeptiert?!
Müsste daran liegen.
Wo kann ich einstellen ob Cookies funktionieren oder nicht?


----------



## Mentor49 (9. Jan 2009)

Also für sowas würd ich entweder alles selber in einen Socket schreiben und dann die Antwort auslesen, oder HttpClient benutzen.

Chris


----------



## Jake2.0 (9. Jan 2009)

naja,
ich brauch aber vielleicht später einmal eine Java-Script Unterstützung.
Meines wissens hat HTTPClient aber nur eine sehr schlechte Unterstützung dessen ... ?!

Und von der Einfachheit des Programms würde es sich halt anbieten mit HTMLUnit oder Ähnlichem zu arbeiten.

Wie meinst du das mit "in einen Socket schreiben" ?
Wie kann man über Sockets mit einer Website interagieren?!

mfg

Jake


----------



## Wildcard (9. Jan 2009)

Am Programmcode wird das wohl kaum liegen, das Langsame ist der Netzwerktraffic/die Antwort des Servers


----------



## Jake2.0 (10. Jan 2009)

Aber wieso bin ich mit Firefox genauso schnell wenn ichs von Hand mache!?
Ich mein HTMLUnit könnte sich ja zumindest sparen die Bilder zu lesen ... werden ja eh nicht angezeigt.
Und dann müsste es doch schneller arbeiten.
Ich hab hier auch Programme die ich mal in Delphi geschrieben hab und diese arbeiten schneller.

Deshalb bin ich der Meinung das es nicht nur am Netzwerktraffic oder der Antwort des Servers liegen kann.

mfg
Jake


----------

