HTMLUNIT getformbyname,网站中未指定表单名称

shi*_*sei 7 java xpath htmlunit

我正在尝试使用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>
Run Code Online (Sandbox Code Playgroud)

我正在尝试单击网页上的"是"按钮验证框.(删除按钮)如您所见,没有提供表单名称.这是我的代码.

 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();
Run Code Online (Sandbox Code Playgroud)

我尝试了这个但是没有用

  final HtmlForm form =   page1.getFormByName(formlist.get(1).getLocalName());
Run Code Online (Sandbox Code Playgroud)

我相信你可以使用xpath来查找表单名称?

Mos*_*cho 14

是的,您可以通过XPath以这种方式获取此元素:

final HtmlForm form = page1.getFirstByXPath("//form[@action='doDelete']");
Run Code Online (Sandbox Code Playgroud)

当然,如果您有更多元素与该操作,您应该正确设置XPath以选择您希望获得的元素.getFirstByXPath方法只返回所有匹配结果中的一个.如果你想得到很多结果,然后进行进一步的处理,你应该去方法getByXPath.

让我知道它是如何工作的.