HTMLUnit arbeit sehr langsam . Alternative?

Status
Nicht offen für weitere Antworten.

Jake2.0

Mitglied
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

Code:
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

Top Contributor
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

Mitglied
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?
 

Jake2.0

Mitglied
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

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

Jake2.0

Mitglied
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
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben