我想在表格中使用 selenium 向一组文本字段输入值,如下所示。
我尝试过这种方式,但没有成功并引发了一个 InvalidElementStateException
。
List<WebElement> marks = driver.findElements(By.xpath(".//table/tbody/tr/td/input"));
for (WebElement mark : marks) {
mark.sendKeys("10");
}
编辑: 在我的 html 中,td 还包含一个额外的隐藏输入。
<tbody>
<tr class="text-center student-mark" id="1">
<td class="text-left">Name</td>
<td class="activityTableBody hidden" >
<input type="text" class="table-input 55630af2a0c4655a1ce06fcd_classTest"
id="55630af2a0c4655a1ce06fcd_classTest_556da05c699e70287ca203b0_classTest" value="0">
</td>
<td class="activityTableBody" >
<input type="text" class="table-input 55630af2a0c4655a1ce06fcd_activity1"
id="55630af2a0c4655a1ce06fcd_activity1_556da05c699e70287ca203b0_Task-1" value="0">
</td>
<td class="activityTableBody" >
<input type="text" class="table-input 55630af2a0c4655a1ce06fcd_activity2"
id="55630af2a0c4655a1ce06fcd_activity2_556da05c699e70287ca203b0_Task-1" value="0">
</td>
<td class="activityTableBody">
<input type="text" class="table-input 55630af2a0c4655a1ce06fcd_activity3"
id="55630af2a0c4655a1ce06fcd_activity3_556da05c699e70287ca203b0_Task-1" value="0">
</td>
<td class="activityTableBody" >
<input type="text" class="table-input 55630af2a0c4655a1ce06fcd_activity4"
id="55630af2a0c4655a1ce06fcd_activity4_556da05c699e70287ca203b0_Task-1" value="0">
</td>
<td class="activityTableBody" >
<input type="text" class="table-input 55630af2a0c4655a1ce06fcd_activity5"
id="55630af2a0c4655a1ce06fcd_activity5_556da05c699e70287ca203b0_Task-1" value="0">
</td>
<td class="tableBodySA hidden" >
<input type="text" class="table-input 55630af2a0c4655a1ce06fcd_markSA" value="0">
</td>
<td class="tableBodySA hidden" *emphasized text*>
<input type="text" class="table-input saMark 55630af2a0c4655a1ce06fcd_markSA100" width="20%" value="0">
</td>
</tr>
.
.
</tbody>
最佳答案
您应该在没有类 'hidden' 的 td
中选择 input
List<WebElement> marks = driver.findElements(By.xpath(
".//table/tbody/tr/td[contains(@class ,'activityTableBody' ) and not(contains (@class ,'hidden'))]/input"));
for (WebElement mark : marks) {
Integer studentMark = i++ % 6;
System.out.println(studentMark);
mark.click();
mark.sendKeys(Integer.toString(studentMark));
}
关于java - 如何使用 Selenium 将值输入到表格中的一组文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35861720/