Textfelder finden und im hintergrund ausfüllen?

alcedo707

Mitglied
Hallo, ich bin neu in der netzwerk programmierung und jetzt habe ich eine frage :).

Ich will mit mein java programm, mein admin panel von meiner seite verwalten (Ohne den Browser zu öffnen).
Links bzw eine Verbindung aufbauen habe ich schon hinbekommen, aber wie mache ich, das das Textfeld gefunden und eingegeben wird? (Username und Passwort für das Login)

Über welche Befehle soll ich mich informieren?


mfg
 
N

nillehammer

Gast
Du musst den html-Output parsen, die entsprechenden form- und input tags finden, die value-Attribute setzen und den Post absetzen. Ich würde das aber nicht selbst programmieren, sondern Bibliotheken benutzen, die das erleichtern, z.B. httpClient, httpUnit, htmlUnit, Selenium (sortiert von lower level to high level).
 

alcedo707

Mitglied
Danke !, ich habe mich informiert aber ich komme nicht weiter.

Bei Selenium wird ein Browser benötigt,httpUnit geht, aber irgendwie nicht auf jede seite und bei htmlUnit kommt ein Error, Obwohl eigendlich alles stimmt.

Der Code von htmlUnit ist:

Java:
package com.example.tests;


import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;
import com.gargoylesoftware.htmlunit.*;

public class ubung3 {


	public static void main(String[] args) throws Exception { {
		
		
		    final WebClient webClient = new WebClient();

		    // Get the first page
		    final HtmlPage page1 = webClient.getPage("http://www.bing.com/?cc=de");

		    // Get the form that we are dealing with and within that form, 
		    // find the submit button and the field that we want to change.
		    final HtmlForm form = page1.getFormByName("Bing");

		    final HtmlSubmitInput button = form.getInputByName("go");
		    final HtmlTextInput textField = form.getInputByName("Suchbegriff eingeben");

		    // Change the value of the text field
		    textField.setValueAttribute("test");

		    // Now submit the form by clicking the button and get back the second page.
		    final HtmlPage page2 = button.click();

		    webClient.closeAllWindows();
		}

	}

}




Und wenn ich es ausführe, steht in der Konsole

Code:
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
WARNUNG: CSS error: [1:742] Fehler in Style-Regel. Ungültiger Token "*". Erwartet wurde einer von: <S>, "}", ";", <IDENT>.
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning
WARNUNG: CSS warning: [1:742] Ignoriere die folgenden Deklarationen in dieser Regel.
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
WARNUNG: CSS error: [1:1201] Fehler in Style-Regel. Ungültiger Token "*". Erwartet wurde einer von: <S>, "}", ";", <IDENT>.
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning
WARNUNG: CSS warning: [1:1201] Ignoriere die folgenden Deklarationen in dieser Regel.
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
WARNUNG: CSS error: [1:598] Fehler in Style-Regel. Ungültiger Token ":". Erwartet wurde einer von: <S>, "}", <COMMA>, ";", "/", <PLUS>, "-", <HASH>, <STRING>, <URI>, "!", "inherit", <EMS>, <EXS>, <LENGTH_PX>, <LENGTH_CM>, <LENGTH_MM>, <LENGTH_IN>, <LENGTH_PT>, <LENGTH_PC>, <ANGLE_DEG>, <ANGLE_RAD>, <ANGLE_GRAD>, <TIME_MS>, <TIME_S>, <FREQ_HZ>, <FREQ_KHZ>, <DIMENSION>, <PERCENTAGE>, <NUMBER>, <FUNCTION>, <IDENT>.
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning
WARNUNG: CSS warning: [1:598] Ignoriere die folgenden Deklarationen in dieser Regel.
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
WARNUNG: CSS error: [1:1423] Fehler in Ausdruck. Ungültiger Token "=". Erwartet wurde einer von: <S>, <COMMA>, "/", <PLUS>, "-", <HASH>, <STRING>, ")", <URI>, "inherit", <EMS>, <EXS>, <LENGTH_PX>, <LENGTH_CM>, <LENGTH_MM>, <LENGTH_IN>, <LENGTH_PT>, <LENGTH_PC>, <ANGLE_DEG>, <ANGLE_RAD>, <ANGLE_GRAD>, <TIME_MS>, <TIME_S>, <FREQ_HZ>, <FREQ_KHZ>, <DIMENSION>, <PERCENTAGE>, <NUMBER>, <FUNCTION>, <IDENT>.
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
WARNUNG: CSS error: [1:1428] Fehler in Style-Regel. Ungültiger Token "opacity". Erwartet wurde einer von: "}", ";".
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning
WARNUNG: CSS warning: [1:1428] Ignoriere die folgenden Deklarationen in dieser Regel.
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
WARNUNG: CSS error: [1:1562] Fehler in Ausdruck. Ungültiger Token "=". Erwartet wurde einer von: <S>, <COMMA>, "/", <PLUS>, "-", <HASH>, <STRING>, ")", <URI>, "inherit", <EMS>, <EXS>, <LENGTH_PX>, <LENGTH_CM>, <LENGTH_MM>, <LENGTH_IN>, <LENGTH_PT>, <LENGTH_PC>, <ANGLE_DEG>, <ANGLE_RAD>, <ANGLE_GRAD>, <TIME_MS>, <TIME_S>, <FREQ_HZ>, <FREQ_KHZ>, <DIMENSION>, <PERCENTAGE>, <NUMBER>, <FUNCTION>, <IDENT>.
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
WARNUNG: CSS error: [1:1567] Fehler in Style-Regel. Ungültiger Token "opacity". Erwartet wurde einer von: "}", ";".
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning
WARNUNG: CSS warning: [1:1567] Ignoriere die folgenden Deklarationen in dieser Regel.
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
WARNUNG: CSS error: [1:2020] Fehler in Ausdruck. Ungültiger Token "=". Erwartet wurde einer von: <S>, <COMMA>, "/", <PLUS>, "-", <HASH>, <STRING>, ")", <URI>, "inherit", <EMS>, <EXS>, <LENGTH_PX>, <LENGTH_CM>, <LENGTH_MM>, <LENGTH_IN>, <LENGTH_PT>, <LENGTH_PC>, <ANGLE_DEG>, <ANGLE_RAD>, <ANGLE_GRAD>, <TIME_MS>, <TIME_S>, <FREQ_HZ>, <FREQ_KHZ>, <DIMENSION>, <PERCENTAGE>, <NUMBER>, <FUNCTION>, <IDENT>.
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
WARNUNG: CSS error: [1:2025] Fehler in Style-Regel. Ungültiger Token "background". Erwartet wurde einer von: "}", ";".
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning
WARNUNG: CSS warning: [1:2025] Ignoriere die folgenden Deklarationen in dieser Regel.
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
WARNUNG: CSS error: [1:2432] Fehler in Style-Regel. Ungültiger Token "*". Erwartet wurde einer von: <S>, "}", ";", <IDENT>.
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning
WARNUNG: CSS warning: [1:2432] Ignoriere die folgenden Deklarationen in dieser Regel.
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
WARNUNG: CSS error: [1:2588] Fehler in Ausdruck. Ungültiger Token "=". Erwartet wurde einer von: <S>, <COMMA>, "/", <PLUS>, "-", <HASH>, <STRING>, ")", <URI>, "inherit", <EMS>, <EXS>, <LENGTH_PX>, <LENGTH_CM>, <LENGTH_MM>, <LENGTH_IN>, <LENGTH_PT>, <LENGTH_PC>, <ANGLE_DEG>, <ANGLE_RAD>, <ANGLE_GRAD>, <TIME_MS>, <TIME_S>, <FREQ_HZ>, <FREQ_KHZ>, <DIMENSION>, <PERCENTAGE>, <NUMBER>, <FUNCTION>, <IDENT>.
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
WARNUNG: CSS error: [1:2593] Fehler in Style-Regel. Ungültiger Token "padding". Erwartet wurde einer von: "}", ";".
03.09.2011 20:38:07 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning
WARNUNG: CSS warning: [1:2593] Ignoriere die folgenden Deklarationen in dieser Regel.
Exception in thread "main" com.gargoylesoftware.htmlunit.ElementNotFoundException: elementName=[form] attributeName=[name] attributeValue=[Bing]
	at com.gargoylesoftware.htmlunit.html.HtmlPage.getFormByName(HtmlPage.java:562)
	at com.example.tests.ubung3.main(ubung3.java:23)

Ich bitte um Hilfe :bahnhof:
 

bERt0r

Top Contributor
Also wenn ich auf die Bing Seite gehe, finde ich genauso wie dein Pc, kein Formular mit dem Namen Bing - was er dir ja auch mit den 50 Zeilen Fehlermeldung sagt. Auf der Seite gibt es ein Formular, das hat die ID "sb_form" aber keinen Namen.
 

Ähnliche Java Themen


Oben