2016-05-25 132 views
1

我有一个具有多行和类似输入的表单。他们有不同的ID,但名称相同。Htmlunit通过ID而不是名称获取表单输入

<input id="E2EMPL1" class="uppercase required" type="text" value="" maxlength="9" size="9" name="E2EMPL"> 

<input id="E2EMPL2" class="uppercase required" type="text" value="" maxlength="9" size="9" name="E2EMPL"> 

我可以填写第一行,没问题,但是当填写第二行时,我找不到它。

这是填写第一行:

  HtmlPage mainPage = webClient.getPage(siteName); 
      form = mainPage.getFormByName("timeForm"); 

      for (TimeEntry te: aList){ 
       form.getInputByName("chkaction").setValueAttribute("checked"); 
       form.getInputByName("E2EMPL").setValueAttribute(te.getResource()); 
       form.getInputByName("ww_fE2WKDT").setValueAttribute(te.getEntryDate()); 
      } 

但我不知道如何填写第二排时的名称保持不变,但ID更改EMPL1,EMPL2等。我想我想使用xpath,但我不知道如何?

form.getByXPath("//input[@id='E2EMPL2']"); ???

编辑:作为一个方面说明。我已经尝试使用HTTPClient来发布数据。不幸的是,它不适用于这种形式,我不知道为什么。我在这里问了一个问题,从来没有得到任何答案,没有足够的代表给它一个很好的奖励。然而,我只是给HTMLUnit一个尝试,如果我填写表单,并点击提交按钮,它将工作得很好。这就是为什么我不使用HTTPClient。

如果有人想看到这个问题,我把它删除了,但是如果有人真的希望看到它,我会删除它。

HTML表单有5行数据,填写一行有点慢,点击提交5次,填写5行,然后点击提交。我希望能快一点,但如果不可能做到这一点,我会放弃这一点。我希望有人能够有洞察力。

回答

2

试试这个:

HtmlForm Form = htmlPage.getHtmlElementById("form id"); 
+1

与答案添加一些解释如何回答帮助OP在固定电流问题 –

相关问题