迭代表单元素htmlunit

时间:2014-09-12 23:27:56

标签: java forms element htmlunit

您知道htmlunit是否支持返回表单元素的表单迭代。 我可以通过使用getInputByName来获取特定元素,如果元素名称不存在,甚至可以使用该值。但是如何在列表中获取特定表单的所有元素呢。是可能的还是我需要自己解析表单

非常感谢

2 个答案:

答案 0 :(得分:0)

来自文档:

XPath is the suggested way for more complex searches, a brief tutorial can be found in W3Schools

@Test
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']").get(0);

    webClient.closeAllWindows();
}

SO:不,它是不可能的,你可以使用XPath(一个java库来解析xml(html是xml))来获得你想要的效果。

祝你好运:)

答案 1 :(得分:0)

您可以通过多种方式进行迭代,例如选择行并迭代它们

    HtmlTable table = (HtmlTable) filings_page.getByXPath(
            "//table[@class='GDOGFYVLF']").get(0);
    java.util.List<HtmlTableRow> table_rows = table.getRows();
    for (int i = 1; i < table.getRows().size(); i++) {
      //your logic
    }