因此,我试图在HtmlUnit中设置元素的文本,但由于某种原因,我不太了解正在抛出NullPointerException。显然,该元素存在于页面上,并且可以通过htmlunit找到!那么为什么setText会引发错误?有任何想法吗?
码:
String code = "123";
HtmlTextInput textElem = (HtmlTextInput)page.getHtmlElementById("gc-redemption-input");
System.out.println(textElem);
textElem.setText(code);
输出:
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="">]
错误:
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)
最佳答案
问题可能是String code = '123';
,因为它在我的IDE中显示以下错误:Unclosed character literal
。尝试使用双引号:String code = "123";
。
关于java - HtmlUnit .setText()抛出空指针异常,但元素不为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38231693/