Ich möchte mich über Java bei einer Website anmelden und Vorgänge wie Klicken, Text in ein Textfeld einfügen usw. über Java ausführen.
Antworten
Zu viele Anzeigen?Ich empfehle die Verwendung eines Test-Frameworks wie HtmlUnit . Auch wenn es zum Testen entwickelt wurde, ist es ein perfekter programmatischer "Navigator" für entfernte Websites.
Hier ist ein Beispielcode von der Website, der zeigt, wie man zu einer Seite navigiert und ein Formular ausfüllt:
public void submittingForm() throws Exception {
WebClient webClient = new WebClient();
HtmlPage page1 = webClient.getPage("http://some_url");
HtmlForm form = page1.getFormByName("myform");
HtmlSubmitInput button = form.getInputByName("submitbutton");
HtmlTextInput textField = form.getInputByName("userid");
textField.setValueAttribute("root");
HtmlPage page2 = button.click();
}
Sie können es starten, indem Sie
Runtime.getRuntime().exec("command-line command to launch IE");
dann verwenden Sie Javas Roboter Klasse zum Senden von Mausklicks und Ausfüllen von Text. Dies scheint jedoch ziemlich grob zu sein, und Sie können es wahrscheinlich besser machen, indem Sie direkt mit dem Webserver kommunizieren (und dabei den Browser völlig umgehen).
Diese Frage ist können die Antworten hilfreich sein.
Sie sollten jedoch direktes HTTP als bessere Möglichkeit zur Interaktion mit Websites in Betracht ziehen.
Wenn Sie wirklich einen "echten" IE brauchen, können Sie es mit Watij Wenn Sie nur Browserfunktionen in Java benötigen, empfehle ich HttpClient
Update: wie der OP angedeutet hat, war die Verwendung eines echten Browsers nicht erforderlich/gewünscht. Ein Beispiel für ein Anmeldeformular mit HttpClient finden Sie hier:
https://github.com/apache/httpcomponents-client/blob/master/httpclient5/src/test/java/org/apache/hc/client5/http/examples/ClientFormLogin.java
- See previous answers
- Weitere Antworten anzeigen