HtmlUnit中form表单提交,提交按钮中的属性没有id、name,提交按钮的标签也不是<input>
如下图,提交查询按钮没有id、name,标签名为<button>:
<form method="post">
<div class="nav_right">
<div class="right_dh" style="padding-left: 10%">
<p>用户姓名:<input type="text" name="userName" value="20190988" title="不可模糊查询" ></p>
<p>性别:<input type="text" name="gender" value="" title="可模糊查询"></p>
<button type="submit" class="btn_search">查询</button>
</form>
解决办法如下(根据button中class属性):
HtmlPage page = webClient.getPage("http://xxx.xx.xx.xx/xx");
//获取form表单
HtmlForm form = page.getForms().get(0);
// System.out.println("-----------form:"+form.asText());
//form表单的btn中没有id和name属性,提交表单
HtmlTextInput inputTxt = null;
HtmlSubmitInput btn = null;
//根据name找到需要的input框
inputTxt = page.getElementByName("userName");
//放入要查询的值
inputTxt.setValueAttribute("张三");
//找到要点击的查询按钮(这里的按钮没有id、name属性,不能用htmlUnit中常规的自带的方法)
List<HtmlElement> lists = (List<HtmlElement>)page.getByXPath("//button[@class='btn_search']");
HtmlPage nextPage = lists.get(0).click();
System.out.println(nextPage.asText());