HTMLUnit Session behalten

Hallo Leute,

ich arbeite momentan mit HTMLUnit um mich bei einer Webseite einzuloggen. Das funktioniert super. Das einzige Problem, was ich nun habe ist, dass wenn ich auf eine andere Seite auf der gleichen Webseite gehe, ich wieder ausgeloggt bin. Wie kann ich die Session übernehmen?

Hier mal der Code:

        HtmlPage page1 = webClient.getPage("url");
        
        List<HtmlForm> formlist = (List<HtmlForm>) page1.getForms();
        System.out.println(formlist.toString());
        HtmlForm form = page1.getFirstByXPath("//form[@class='form-login']");
        
        HtmlTextInput usernametextField = form.getInputByName("username");
        usernametextField.setValueAttribute("test");
        HtmlPasswordInput passwordtextField = form.getInputByName("password");
        passwordtextField.setValueAttribute("test");
        
        HtmlSubmitInput button = form.getInputByName("Submit");
        HtmlPage page2 = button.click();
        System.out.println(page2.getUrl());
        
        HtmlPage neueseite = webClient.getPage("seite2");
        System.out.println(neueseite.getUrl());

        webClient.closeAllWindows();```

Ich hoffe jemand hat damit schonmal gearbeitet und kann mir die Lösung/einen Tipp geben.

Mfg
daniel0916

es gibt Cookies, dazu sehe ich bei dir gar nix, hier ein Link, sonst erst einmal intensiver damit beschäftigen

oder es gibt komplizierte URLs mit Parameter, URL-Rewriting,
http://www.tutego.de/java/articles/Servlet-HttpSession.html
die müsstest du aus der HTML-Seite parsen (man klickt dann üblicherweise nur herum statt etwas neues in den Browser einzutippen)
oder bei den Anfragen a la „page2“ manuell hinzufügen oder hoffentlich gibt es auch was fertiges dazu :wink:

[QUOTE=SlaterB]es gibt Cookies, dazu sehe ich bei dir gar nix, hier ein Link, sonst erst einmal intensiver damit beschäftigen


Soviel ich weis, sind Cookies bei HTMLUnit von anfang an aktiviert. Habe sicherheitshalber auch das nochmal manuell aktiviert, hat aber nicht geholfen.

[QUOTE=SlaterB;102274]oder es gibt komplizierte URLs mit Parameter, URL-Rewriting,
http://www.tutego.de/java/articles/Servlet-HttpSession.html
die müsstest du aus der HTML-Seite parsen (man klickt dann üblicherweise nur herum statt etwas neues in den Browser einzutippen)
oder bei den Anfragen a la “page2” manuell hinzufügen oder hoffentlich gibt es auch was fertiges dazu ;)[/QUOTE]

Also wenn ich es im Browser öffne, steht hinter der URL nichts. Oder ist das anders gemeint? Ich lese mir den Link später durch, bin gerade nur am Handy…
Das manuelle öffnen wäre eine Idee. Einfacher wäre es aber direkt auf die URL zuzugreifen. Ich teste später mal, wie geht es funktioniert, wenn ich über HTMLUnit mit ein paar Buttonklicks etc. auf diesen Link am Schluss komme.

mein erster Satz im Posting davor klingt vielleicht auch etwas hart, ich kenne das letztlich gar nicht genau,
wobei von fehlenden Cookies schon öfter gehört,

wenn du dir deren bewußt bist wäre ja ein Satz dazu nicht verkehrt in der Ursprungsfrage, auch Ausgabe der evtl. vorhandenen Cookies bzw. deren Fehlen nennen

mein Link dazu übrigens fraglich,

cookieMan = webClient.getCookieManager();

ist ja ziemlich unnützer Code, das erzeugte Objekte wird gleich verworfen

Ich bin nun verwirrt. Habe gerade mein Programm nochmal gestartet und nun gehts… Ich weis zwar nicht, was das Problem war, aber ich teste es nunmal weiter…
Wie bekomme ich denn die Table einer Webseite, wenn diese nur eine Klassenangabe hat?
Habe das hier getestet.
HtmlTable table = neueseite.getFirstByXPath("//table[@class='Tabelle4']");
Aber die table ist dann null…

ich kenne das alles gar nicht, aber falls es irgendetwas geben sollte, was den kompletten XML-Baum liefert,
dann kannst du den ja komplett lowlevel untersuchen :wink:

falls es dann nur an XPath liegt, besser in eigenen Thema mit Beispiel-XML und Beispiel-Query

[QUOTE=SlaterB]ich kenne das alles gar nicht, aber falls es irgendetwas geben sollte, was den kompletten XML-Baum liefert,
dann kannst du den ja komplett lowlevel untersuchen ;)[/QUOTE]
Also die Tabellen Elemente einfach direkt aus dem Code auslesen?

[QUOTE=SlaterB;102294]
falls es dann nur an XPath liegt, besser in eigenen Thema mit Beispiel-XML und Beispiel-Query[/QUOTE]
Was meinst du mit Beispiel-XML und Beispiel-Query?

ich meine vielleicht gibt es ja wirklich ein table-Element oder was immer du suchst, nur dein XPath-Suche (Query) minimal nicht optimal,
dann möglichst ein 10-20zeiliges vollständiges XML + XPath posten die zum gleichen Problem führt

war so allgemein dahingeredet hinsichtlich für alle vollständig reproduzierbarer Probleme