使用带有java的webdriver获取div id值

时间:2018-01-09 06:12:06

标签: java html css xpath selenium-webdriver

从下面的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下选择。

请指导我。

2 个答案:

答案 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"));