我正在尝试使用HTMLUNIT来浏览网站上的按钮我遵循本教程http://htmlunit.sourceforge.net/gettingStarted.html,但它需要一个表单名称。我正在尝试做的网站有这个页面来源。
<form method="post" action="doDelete">
Are you sure you want to delete 'Apple?'?
<input name="Submit" value="Yes" class="submit-button" type="submit" />
</form>
我正在尝试单击网页上的“是”按钮验证框。(删除按钮)如您所见,没有提供表单名称。这是我的代码。
final WebClient webClient = new WebClient();
final HtmlPage page1 = webClient.getPage("http://ma.some-site.com:8080/user/mike/delete");
List<HtmlForm> formlist = (List<HtmlForm>) page1.getForms();
System.out.println(formlist.toString());
final HtmlForm form = page1.getFormByName("myform"); <---Problem here
final HtmlSubmitInput button = form.getInputByName("Submit");
button.click();
webClient.closeAllWindows();
我尝试了这个但是不起作用
final HtmlForm form = page1.getFormByName(formlist.get(1).getLocalName());
我相信你可以使用xpath来查找表单名称?
答案 0 :(得分:14)
是的,您可以通过XPath以这种方式获取此元素:
final HtmlForm form = page1.getFirstByXPath("//form[@action='doDelete']");
当然,如果您有更多具有该操作的元素,则应正确设置XPath以选择您希望获得的元素。方法getFirstByXPath将仅返回所有匹配结果中的一个。如果您想获得许多结果然后进行进一步处理,那么您应该使用方法getByXPath。
让我知道它是如何运作的。