从下面的HTML源代码中,我想获取优先级部分下的表格的id值(DataTables_Table_1
),因为此ID会动态生成(DataTables_Table_1,DataTables_Table_2,DataTables_Table_2
)
<div class="box light detailsBox " id="priority" rel="Priority">
<div class="box-content detailsBoxBody">
<div id="DataTables_Table_1_wrapper" class="dataTables_wrapper" role="grid">
<table class="ohim-table dataTable" data-filter="" rel="dataTable1515477181791" id="DataTables_Table_1" aria-describedby="DataTables_Table_1_info">
</table>
</div>
</div>
</div>
下面是我的Java源代码:
首先我从该div移动到优先级div标签,我移动了with class属性
WebElement checPri = driver.findElement(By.id("priority"));
String insideDiv = checPri.findElement(By.className("dataTables_wrapper")).getAttribute("id");
我得到了输出但不是预期的输出,因为className多次应用,所以它选择了一些其他id不在优先级div下选择。
请指导我。
答案 0 :(得分:2)
您可以使用cssSelector
指定路径
WebElement checPri = driver.findElement(By.cssSelector("#priority .dataTables_wrapper"));
String insideDiv = checPri.getAttribute("id");
或者查找类dataTables_wrapper
和部分ID DataTables_Table
WebElement checPri = driver.findElement(By.id("priority"));
String insideDiv = checPri.findElement(By.cssSelector("[id*='DataTables_Table'].dataTables_wrapper")).getAttribute("id");
答案 1 :(得分:1)
要在优先级部分下检索表id
值(例如DataTables_Table_1
),您可以使用以下代码行:
System.out.println(driver.findElement(By.xpath("//div[@id='priority']//table[@class='ohim-table dataTable']")).getAttribute("id"));