所以我基本上已经坚持了几天的特定代码片段了。我正在尝试访问网页并使用Java中的Htmlunit单击特定的切换按钮。
我目前为java程序提供的代码:
WebClient webClient = new WebClient();
HtmlPage page1 = webClient.getPage("webpage URL");
page1.getElementById("additional_parameters_toggle").click();
网页切换的HTML代码:
<div class="parameters clearfix">
<input type="checkbox" id="additional_parameters">
<label for="additional_parameters class="additional_parameters_toggle" data-name="big old ugly toggle">
<span class = "checkbox_outer">
<span class = "checkbox_inner"></span>
</span>
<span class="label_text">Show details / hourly data</span>
</label>
</div>
我认为这应该有效,但我不断得到NullPointerException
。如果有人能提供一些见解或帮助,我们将不胜感激。谢谢。
答案 0 :(得分:0)
page1.getElementById("additional_parameters_toggle")
看起来您没有将此值作为Id的元素。但是,您确实拥有一个包含此值的属性class
的元素。
答案 1 :(得分:0)
正如Tom暗示的那样,./test
Please enter number of tapes: [int]
1
What is the number of tape 1?
0999
./test: 0999: Value too great for base (error token is "0999")
将无效,因为该值没有.getElementById()
HTML属性。
您需要使用:
id
这意味着,通过XPath找到第一个元素:搜索page1.<HtmlElement>getFirstByXPath("//label[@class='additional_parameters_toggle']").click();
属性为&#34; additional_parameters_toggle&#34;然后label
的任何class
。