使用Htmlunit在Java中按网页上的切换按钮

时间:2015-11-13 14:53:52

标签: java html htmlunit

所以我基本上已经坚持了几天的特定代码片段了。我正在尝试访问网页并使用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。如果有人能提供一些见解或帮助,我们将不胜感激。谢谢。

2 个答案:

答案 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