我想选择一行并删除它,但是行的id是动态生成的,所以如何在selenium webdriver中使用java访问它。当我将通过使用应用程序添加一行时,将添加具有不同id的新tr标签。如何选择行.Below是具有两行具有不同id的表的html代码。
<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 :(得分:0)
您可以通过使用CSS选择器来选择行,例如:
#SlotTable > tr:nth-child(1)
#SlotTable > tr:nth-child(2)
答案 1 :(得分:0)
元素的样式似乎是相同的,因此您可以将它们用作标识符并选择具有该特定样式的所有元素,然后对其执行操作。
答案 2 :(得分:0)
尝试使用xpath获取行:
//tbody[@id='tableBody']//tr[1]
//tbody[@id='tableBody']/script/tr[1]
更改号码以访问您需要的行。
答案 3 :(得分: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;
}