以下是我的HTML结构页面。
<tr>
<td class="checkCol">
<td align="center">
<td> 8 </td>
<td> Add </td>
<td>
<td> Route Translation </td>
<td title=""> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> Force Complete </td>
<td>
<td>
<td>
<td>
</tr>
我使用下面的代码来检索TD元素值。
List<WebElement> numOfRows = sppOrder_table.findElements(By.tagName("tr"));
if (numOfRows.size() == 1) {
System.out.println("No Record");
} else {
// Excluding header row
for (int i = 1; i <= numOfRows.size() - 1; i++) {
List<WebElement> numOfColumns = ((WebElement) numOfRows.get(i)).findElements(By.tagName("td"));
for (WebElement td : numOfColumns) {
System.out.println("Column Value === "+td.getText());
}
}
我的表Xpath是正确的。它使用HTMLUNITDRIVE打印,并使用Firefox正常工作。请提出此问题的解决方案。
答案 0 :(得分:0)
适用于最新版本。您的案例缺少标题tr
元素。
以下打印预期结果:
<table id='myid'>
<tr></tr>
<tr>
<td class="checkCol">
<td align="center">
<td> 8 </td>
<td> Add </td>
<td>
<td> Route Translation </td>
<td title=""> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> Force Complete </td>
<td>
<td>
<td>
<td>
</tr>
</table>
HtmlUnitDriver driver = new HtmlUnitDriver();
driver.get(the_url);
WebElement sppOrder_table = driver.findElement(By.id("myid"));
List<WebElement> numOfRows = sppOrder_table.findElements(By.tagName("tr"));
if (numOfRows.size() == 1) {
System.out.println("No Record");
} else {
// Excluding header row
for (int i = 1; i <= numOfRows.size() - 1; i++) {
List<WebElement> numOfColumns = ((WebElement) numOfRows.get(i)).findElements(By.tagName("td"));
for (WebElement td : numOfColumns) {
System.out.println("Column Value === "+td.getText());
}
}
}