Bei HtmlUnit erkennen ob ein submit button funktioniert hat?

...komplette Frage anzeigen

1 Antwort

Indem du überprüfst, ob "page2" den entsprechenden Vermerk enthält...

Z.B. "Login erfolgreich." bzw. "Falscher/s Benutzername/Passwort."...

P.S.: Was genau hast du eigentlich vor? Oder anders gefragt: Gibts für die Seite kein API bzw. spräche irgendwas dagegen, das ganze mit HttpURLConnection ( http://docs.oracle.com/javase/6/docs/api/java/net/HttpURLConnection.html ) und Regex Pattern( https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html ) zu machen?

kolerjunge 06.07.2017, 19:28

Das Problem ist das dieser Button kein einfacher Button ist sondern ein formular oder so ka xD hier:

<input type='submit' class='submit stdbtn' value='Anmelden'> 

Da kommt niregndzwo login erfolgreich oder so heraus, die url ändert sich auch nicht...

0
Isendrak 06.07.2017, 19:51
@kolerjunge

Dann schnapp dir ggf. mal Firefox, installiere das Addon Firebug, und analysiere zunächst einmal welche Aktion welche Reaktion hervorruft...

Beispiel:

Angenommen, das Login-Formular hat die URL http://example.com/login.php, dann rufe zunächst diese URL im Browser (Jep, der Firefox, in diesem Beispiel) auf und öffne die Konsole von Firebug und wechsele zum Tab "Net".

Trage dann beliebige (oder auch korrekte) Daten ein und sende das Formular ab.

Achte drauf, was an Übertragungen in der Liste auftaucht und suche nach dem, was die Reaktion auf die Aktion des Absendens beinhaltet.

Wenn das Formular z.B. diesen Aufbau hat:

<html>
<head>
<title>Example.com - Login</title>
</head>
<body>
<form method="post" action="/login2.php">
Username: <input type="text" name="user"/><br/>
Password: <input type="password" name="pass"/><br/>
<input type="submit" value="Login"/>
</form>
</body>
</html>

Dann suchst du in der Liste den Eintrag, der in etwa mit "POST /login2.php 200 OK" beginnt.

Dann schaust dir di Details an und bastelst daraus einen HTTP Request.

Dessen Response kann dann ausgewertet werden, um zu sehen, ob der Login erfolgreich war oder nicht.

Wenn das ganze allerdings über AJAX läuft, ist das Verfahren im Kern ziemlich das selbe, nur musst du ggf. n Paar mehr Listeneinträge analysieren...

P.S.: Das ganze kannst dann am Ende wie eingangs erwähnt mit http://docs.oracle.com/javase/6/docs/api/java/net/HttpURLConnection.html und https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html . Die HtmlUnit Library ist für diesen Zweck für gewöhnlich "n bisschen Overkill"...

P.P.S.: Du könntest aber auch etwas genauer beschreiben, was du überhaupt vorhast, sonst wird das n bisschen wie "Steck dem Esel den Schwanz an", aber mit Tequila... ;)

0

Was möchtest Du wissen?