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

Pressing toggle button on webpage in Java using 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。如果有人可以提供一些见解或帮助,我们将不胜感激。谢谢。

page1.getElementById("additional_parameters_toggle")

您似乎没有将此值作为 ID 的元素。但是,您确实有一个元素的属性 class 包含此值。

正如 Tom 所暗示的那样,.getElementById() 将不起作用,因为该值没有 id HTML 属性。

您需要使用:

page1.<HtmlElement>getFirstByXPath("//label[@class='additional_parameters_toggle']").click();

这意味着,通过 XPath 查找第一个元素:搜索具有 "additional_parameters_toggle" 的 class 属性的任何 label,然后 .click() 它。