# HTMLunit: Form ElementNotFound



## Anfänger_123 (25. Okt 2011)

Hallo zusammen,

ich möchte auf einer html-Seite mittels HTMLunit in ein Textfeld eine automatisierte Eingabe durchführen. Leider bekomme ich aktuell eine Fehlermeldung, die besagt, dass die Form nicht gefunden wird.

Anbei ein Auszug aus dem Coder der HTML-Seite:
[JAVA=42]
    </table>
   </td>
  </tr>
 </table>
    <p>
    <table border="0">
      <tr>
        <form name=test action="fzg.pl" onsubmit="return check();" method=get>
        <INPUT type=hidden NAME=SYSTEM VALUE=TI>
        <INPUT type=hidden NAME=LIEFERANT VALUE=''>
          <td class=b12pt align=right>Eingabe: </td>
          <td><input type=text name="Nummer" value="" size=8 maxlength=7 ></td>
          <td width=10>&nbsp;</td>
          <td><select name=SHOWAS size=1><option value=table >&nbsp; als Tabelle</option><option value=tree >&nbsp; als Baumstruktur &nbsp;</option></select></td>
          <td width=10>&nbsp;</td>
          <td><button type=submit > ok </button></td>

        </form>
      </tr>
    </table>
[/code]
Ich möchte in der Form mit dem Namen "test" im Feld "Nummer" eine Eingabe vornehmen.
Nachfolgend der JAVA-Code und die Fehlermeldung.
[JAVA=42]
public void testHtmlUnit() throws Exception{
	final WebClient wc = new WebClient();
	URL url = new URL ("http://localhost/test.html");
	final HtmlPage page1 = (HtmlPage) wc.getPage(url);


	final HtmlForm form = page1.getFormByName("test");

	final HtmlTextInput myInput = (HtmlTextInput) form.getInputByName("Nummer");
	myInput.setValueAttribute("3671704");

	final HtmlPage page2 = (HtmlPage) form.getInputByValue("ok - Teilenummern anzeigen").click();

	System.out.println(page2.asXml());

}
[/code]
Fehlermeldung:
com.gargoylesoftware.htmlunit.ElementNotFoundException: elementName=[form] attributeName=[name] attributeValue=[knrform ]
	at com.gargoylesoftware.htmlunit.html.HtmlPage.getFormByName(HtmlPage.java:562)
	at HtmlUnitTest.testHtmlUnit(HtmlUnitTest.java:23)
	at HtmlUnitTest.main(HtmlUnitTest.java:43)

Könnt ihr mir sagen, was ich falsch mache.

Danke

Gruss


----------



## Tomate_Salat (25. Okt 2011)

Naja, bei solchem HTML [c] <INPUT type=hidden NAME=SYSTEM VALUE=TI>[/c] würde es mich nicht wundern, wenn der parser damit nicht klar kommt. Definiere mal die Attribute/Tags richtig (hier mal eines von vielen):
[xml]
 <input type="hidden" name="SYSTEM" value="TI" />
[/xml]


----------



## Anfänger_123 (25. Okt 2011)

Danke.

Leider kann ich das nicht, da die Seite nicht von mir ist,... . 

Kann es noch einen anderen Grund für das Problem geben, außer den unschönen Tags?


----------



## Tomate_Salat (25. Okt 2011)

Du hast ja mal mind. eine Kopie von der Seite. Dann probier es doch aus, ob die hässlichen Tags der Grund sind (also einfach mal die Anführungszeichen setzen). Wenn sich das Problem damit löst, hast du halt dein nächstes Problem gefunden :joke:


----------



## nillehammer (25. Okt 2011)

Ich glaub auch, dass es an den fehlenden Qutes um die Attribute liegt. Da zumindest das Markup ansich sauber aussieht, hilft Dir vielleicht die Methode "getForms()". Damit kriegst Du eine Liste aller Formulare und kannst mit index darauf zugreifen.


----------

