我有一个包含多行和类似输入的表单。它们具有不同的 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">
Run Code Online (Sandbox Code Playgroud)
我可以填第一行,没问题,但是要填第二行,我就想不通了。
这是填写第一行:
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());
}
Run Code Online (Sandbox Code Playgroud)
但是当名称保持不变时,我不确定如何填写第 2 行,但 ID 更改为 EMPL1、EMPL2 等。我想我应该使用 xpath,但我不确定如何填写?
form.getByXPath("//input[@id='E2EMPL2']"); ???
编辑:作为旁注。我曾尝试使用 HTTPClient 来发布数据。不幸的是,它不适用于这种形式,我不知道为什么。我在这里问了一个问题,但从来没有得到任何答案,也没有足够的代表来悬赏。但是,我只是尝试了 HTMLUnit,如果我填写表单并点击提交按钮,它会正常工作。这就是我不使用 HTTPClient 的原因。
如果有人想看这个问题,我把它删除了,但如果有人真的想看,我会取消删除它。
HTML表单有5行数据,填充一行有点慢,点击提交5次vs填充5行然后点击提交。我希望它会快一点,但如果不可能做到这一点,我会放弃这个。我希望有些人可以有洞察力。