2013-07-04 91 views
0

我想選擇一個行並刪除它,但動態生成的行ID,以便使用Java硒的webdriver怎麼能我訪問。當我將通過使用應用程序的新tr標籤中添加一行將與不同id.so加入我怎樣才能選擇row.Below是它有兩行用不同的ID的表中的HTML代碼。不能找到硒使用Java元素的webdriver

<table id="SlotTable" class="noborder" cellspacing="0" cellpadding="0" align="left"  
paging="false" style="border-top: 0px none; table-layout: fixed; width: 984px;"> 
<tbody id="tableBody"> 
<script> 
<tr id="97.115.104.105.115.104" style="background-color: rgb(221, 221, 221);"> 
<td width="254px" style="text-overflow: ellipsis; overflow: hidden; white-space: nowrap; width: 254px;"> 
<td width="110px" style="text-overflow: ellipsis; overflow: hidden; white-space: nowrap; width: 110px;"> 
<td width="60px" style="text-align: right; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; width: 60px;"> 
<td width="170px" style="text-align: right; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; width: 170px;"> 
<td width="100px" style="text-align: right; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; width: 100px;"> 
<td width="120px" style="text-overflow: ellipsis; overflow: hidden; white-space: nowrap; width: 120px;"> 
<td width="170 px" style="text-align: right; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"> 
</tr> 
<tr id="107.117.109.97.114" style="background-color: rgb(232, 232, 232);"> 
</tbody> 
</table> 
</div> 
</td> 
</tr> 
<tr> 
</tbody> 
</table> 
+0

你要哪個元素選擇? – Ioan

+0

我想選擇要刪除的 – Ashish

回答

0

您可以通過使用CSS選擇器一樣選擇例如行:

#SlotTable > tr:nth-child(1) 

#SlotTable > tr:nth-child(2) 
+0

driver.findElement一個完整的行(By.cssSelector( 「表#SlotTable TR:第n個孩子(1)」))點擊()。上述行我使用訪問第一行,但得到的異常 – Ashish

+0

你找哪家錯誤? – Ioan

+0

沒有這樣的元素錯誤時拋出 – Ashish

0

元素的風格似乎是一樣的,所以你可以把它們作爲標識符和選擇所有元素用那種特殊的風格,然後在這些上做你的動作。

+0

我要選擇單走完整的行 – Ashish

0

試圖讓行使用XPath:

//tbody[@id='tableBody']//tr[1] 

//tbody[@id='tableBody']/script/tr[1] 

更改號碼來訪問您需要的行。

0

將這個方法,你會得到的所有行ID列表,您可以後,使用相應的ID進行的所有活動:

public ArrayList<String> ListOfIdsOfRows() 
{ 
    WebElement table =driver.findElement(By.id("SlotTable")); 
    WebElement tbody=table.findElement(By.tagName("tbody")); 
    List<WebElement> rows=tbody.findElements(By.tagName("tr")); 
    ArrayList<String> ListOdIds=new ArrayList<>(); 

    for(int i=0;i<rows.size();i++) 
    { 
    WebElement row = tbody.findElement(By.xpath("//table[@id='SlotTable']/tbody/tr["+(i+1)+"]")); 
    String rowId=row.getAttribute("id"); 
    ListOdIds.add(rowId); 
    } 

    return ListOdIds; 
}