HtmlUnit,如何获取没有name属性的按钮

时间:2014-06-27 01:21:18

标签: java htmlunit

<button type="submit" class="btn btn-block btn-success" onclick="ASPxLoadingPanel1.Show();">
                            <span class="pull-left"><i class="fa fa-paste"></i></span>
                            <span class="bold">Search</span>
                        </button>

所以我想从一个html页面获取这个Button。

button = a.getInputByName("btnLogin");

这不是方法。有人可以帮助我并告诉我如何通过HtmlUnit获取此按钮。

3 个答案:

答案 0 :(得分:2)

尝试获取标记名称,然后在列表中指定索引:

HtmlButton button = (HtmlButton) page.getElementsByTagName("button").get(0);

//它对我不起作用。

答案 1 :(得分:1)

使用xpath获取按钮的示例。

示例代码

public void xpath() throws Exception {
    final WebClient webClient = new WebClient();
    final HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net");

    //get list of all divs
    final List<?> divs = page.getByXPath("//div");

    //get div which has a 'name' attribute of 'John'
    final HtmlDivision div = (HtmlDivision) page.getByXPath("//div[@name='John']/button").get(0);

    webClient.closeAllWindows();
}

答案 2 :(得分:1)

使用XPath应该是最好的方法。问题是你必须自己找到最合适的XPath。

一旦有了XPath标准,HtmlUnit代码就很简单了:

HtmlButton button = page.getFirstByXPath("//button[@type='submit' and span[text()=='Search']]");
button.click();

我不确定我建议的XPath字符串是否可以解决问题,但它应该非常接近。