2016-05-25 16 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"> 

最初の行には問題はありませんが、2行目に入力するとわかりません。

この

は、最初の行に記入することです:

  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()); 
      } 

をしかし、私は名前は同じままとき2行目に記入する方法がわからないんだけど、EMPL1、EMPL2などにIDの変更私はxpathを使うことになっていると思いますが、どうしたらよいかわかりません。

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

編集:注釈として。私はデータをPOSTするためにHTTPClientを試しました。残念ながら、このフォームでは機能しません。理由はわかりません。私はここで質問をしたことがありませんでした。答えは得られておらず、十分な恩恵を得るための十分な担当者がいません。しかし、私はちょうどHTMLUnitを試してみました。フォームに記入して送信ボタンを押すとうまくいくはずです。これが私がHTTPClientを使用しない理由です。

誰かが質問を見たいと思えば、私はそれを削除しましたが、誰かが本当にそれを見たいと思えば、私はそれを元に戻します。

HTMLフォームには5行のデータがあり、1行を入力するのに少し時間がかかります。5回送信をクリックし5行を入力してからsubmitをクリックします。私は少し速くなることを望んでいましたが、これを行うことが不可能な場合は、私はこれをあきらめます。私はいくつかの人々が洞察力を持つことができることを望んでいた。

答えて

2

はこれを試してみてください:

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

は、現在の問題を修正するにはどのようにこの答えのヘルプOPのための答えを持ついくつかの説明を追加します。 –

関連する問題