无法在HTMLUNITDRIVER中获取表>> TD元素的文本

时间:2015-11-05 06:50:34

标签: java selenium-webdriver htmlunit-driver

以下是我的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正常工作。请提出此问题的解决方案。

1 个答案:

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