2016-05-25 175 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在固定電流問題 –

相關問題