Also ich versuche, den Text eines Elements in HtmlUnit zu setzen, aber aus irgendeinem Grund verstehe ich nicht ganz, dass eine NullPointerException ausgelöst wird. Offensichtlich existiert das Element auf der Seite und es wird von htmlunit gefunden! Warum sollte setText einen Fehler verursachen? Irgendwelche Ideen?HtmlUnit .setText() wirft eine Nullzeigerausnahme, aber Element ist nicht null
Code:
String code = "123";
HtmlTextInput textElem = (HtmlTextInput)page.getHtmlElementById("gc-redemption-input");
System.out.println(textElem);
textElem.setText(code);
Ausgang:
HtmlTextInput[<input type="text" required="" id="gc-redemption-input" name="claimCode" class="gc-redemption-input a-input-text a-span12 a-form-selected" autofocus="autofocus" value="">]
Fehler:
Exception in thread "main"
java.lang.NullPointerException
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.hasTopCall(ScriptRuntime.java:3241)
at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:102)
at com.gargoylesoftware.htmlunit.javascript.host.dom.MutationObserver.attributeReplaced(MutationObserver.java:165)
at com.gargoylesoftware.htmlunit.html.HtmlElement.fireHtmlAttributeReplaced(HtmlElement.java:348)
at com.gargoylesoftware.htmlunit.html.HtmlElement.fireHtmlAttributeReplaced(HtmlElement.java:353)
at com.gargoylesoftware.htmlunit.html.HtmlElement.fireHtmlAttributeReplaced(HtmlElement.java:353)
at com.gargoylesoftware.htmlunit.html.HtmlElement.fireHtmlAttributeReplaced(HtmlElement.java:353)
at com.gargoylesoftware.htmlunit.html.HtmlElement.fireHtmlAttributeReplaced(HtmlElement.java:353)
at com.gargoylesoftware.htmlunit.html.HtmlElement.fireHtmlAttributeReplaced(HtmlElement.java:353)
at com.gargoylesoftware.htmlunit.html.HtmlElement.fireHtmlAttributeReplaced(HtmlElement.java:353)
at com.gargoylesoftware.htmlunit.html.HtmlElement.fireHtmlAttributeReplaced(HtmlElement.java:353)
at com.gargoylesoftware.htmlunit.html.HtmlElement.fireHtmlAttributeReplaced(HtmlElement.java:353)
at com.gargoylesoftware.htmlunit.html.HtmlElement.setAttributeNS(HtmlElement.java:209)
at com.gargoylesoftware.htmlunit.html.HtmlInput.setAttributeNS(HtmlInput.java:538)
at com.gargoylesoftware.htmlunit.html.HtmlTextInput.setAttributeNS(HtmlTextInput.java:164)
at com.gargoylesoftware.htmlunit.html.DomElement.setAttribute(DomElement.java:331)
at com.gargoylesoftware.htmlunit.html.HtmlInput.setValueAttribute(HtmlInput.java:94)
at com.gargoylesoftware.htmlunit.html.HtmlTextInput.setText(HtmlTextInput.java:124)
Dies sollte jetzt behoben werden. Siehe [Htmlunit-Nullzeiger beim Füllen der Eingabe, aber das Element ist nicht nulled] (http://stackoverflow.com/questions/41839518/htmlunit-null-pointer-on-filling-input-but-element-is-not-nulled) – RBRi