2015-07-28 59 views
2
<div id="OmContentSection" class="modified_content ui-content"   role="main" data-role="content" style="padding: 0px;">  
    <div> 
    <div id="positionsContainer" class="WL_watchlist_listitem"> 
    <table id="tblMainData" class="WL_watchlist_table" border="0" width="100%" cellspacing="0" cellpadding="0"> 
     <tbody id="positionsList"> 
     <tr id="A"> 
      <td id="A_daysToExpiry" class="fieldRendererText "/> 
      <td id="A_targetProfit" class="fieldRendererText "/> 
      <td id="A_stopLossPrice" class="fieldRendererText "/> 
      <td id="A_note" class="fieldRendererText "/> 
      <td id="A markChange" class="fieldRendererText ">-2.13</td> 
      <td id="A_markPercChange" class="fieldRendererText ">-5.18%  </td></tr> 
     <tr id="AA"> 
     <tr id="AL"> 
     <tr id="AR"> 
     <tr id="AT"> 
     <tr id="AM"> 
     <tr id="AT"> 
     <tr id="BAC"> 
     <tr id="M"> 
     </tbody> 
     </table> 
</div> 

`无法获得行数和使用webdriver的2.0访问表的表数据(JAVA)

下面是我的代码来处理表中的数据:

WebElement table = driver.findElement(OH_positions); 


    WebElement tablebody = driver.findElement(By.id("positionsList")); 

     // Now get all the TR elements from the table 
     List<WebElement> allRows = tablebody.findElements(By.tagName("tr")); 
     System.out.println("row size :"+allRows.size()); 

     // And iterate over them, getting the cells 
     for (WebElement row : allRows) { 
      List<WebElement> cells = row.findElements(By.tagName("td")); 
      int columncount = cells.size(); 
      System.out.println("Column size :"+columncount); 
      System.out.println("data:"+cells.get(row); 


     } 

在我的代码我已经尝试了几种方法来识别表格和行 但是我在每个实例中将行大小设置为0。每次我都得到与'0'相同的响应,我不知道如何解决这个问题。

帮助表示赞赏。

+0

你缺少收盘''和几个关''秒 - 复制和粘贴错误? –

+0

是的Basti ..你是对的有一个错字错误。 –

+0

根据上述评论所做的更改。 –

回答

0

我猜行数不对。您正尝试使用cells.get()而不是提供索引,而不是传递WebElement。试试如下

// And iterate over them, getting the cells 
for (WebElement row : allRows) { 
    List cells = row.findElements(By.tagName("td")); 
    int columncount = cells.size(); 
    System.out.println("Column size :" + columncount); 
    int cols = row.findElements(By.tagName("td")).size(); 
    System.out.println("Column size :"+cols);  
} 
+0

谢谢您输入Saifur。 –