2015-11-05 23 views
0

下面是我的HTML頁面結構。無法在HTMLUNITDRIVER中獲取表格>> TD元素的文本

<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

它適用於最新版本。您的情況缺少標題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()); 
      } 
     } 
    } 
+0

艾哈邁德嗨,我有驅動程序實例和表元素創建的代碼。我只發佈了重要的代碼行。一切工作正常在Firefox驅動程序。當我在HtmlUnitDriver上執行它時,它會打印空白。 –

+0

我用我發佈的例子測試,HtmlUnit將工作。請提供完整的案例供其他人重現此問題。 –