如何使用Selenium WebDriver读取表中的单元格值

时间:2018-09-18 19:02:00

标签: selenium selenium-webdriver webdriver

[下面是html代码。实际上,我无法理解如何真正解释Webtable有两个表ID(tbl和tbr)以及该表共有4行的情况。表id = tbl下的第一列以及其余的Rev和Qty和我正在尝试检查col值是否存在或不考虑每一行,例如表id = tbl下的col1是零件名称,表id = tbr下的col2和col3是否有零件修订和零件数量。我想检查零件是否存在指定的修订和数量。我的问题现在清除了吗?

<form autocomplete="off" onsubmit="return false;" name="tvcTableForm">
    <input type="hidden" value="tvc-0000000000000002" name="object">
    <input type="hidden" value="35004.36845.30464.63080" name="parentOID">
    <div id="th">
    <div id="tb">
    <div id="tblc" style="top: 32px; height: 112px;">
    <table id="tbl" class="contentTable" cellspacing="0" cellpadding="0" style="border: 0px none; width: 199px; height: 144px; table-layout: fixed;">
    <tbody>
    </table>
    </div>
    <div id="tbrc" style="top: 32px; left: 199px; width: 1106px; height: 112px; overflow: auto;">
    <table id="tbr" class="contentTable" cellspacing="0" cellpadding="0" style="border: 0px none; width: 1089px; height: 144px; table-layout: fixed;">
    <tbody>
    <tr id="r573378134017" class="even" oncontextmenu="return ctxm(event)" style="height: 36px;">

2 个答案:

答案 0 :(得分:0)

嗨,如果您使用Java硒,则可以使用此功能

WebElement tbl = driver.findElement(By.id("tbr"));

//check all row, identification with 'tr' tag
List<WebElement> rows = tbl.findElements(By.tagName("tr"));

for(int i=0; i<rows.size(); i++) {
    //check column each in row, identification with 'td' tag
    List<WebElement> cols = rows.get(i).findElements(By.tagName("td"));

    //for(int j=0; j<cols.size(); j++) {
    //  System.out.println(cols.get(j).getText());
    //}

    if(cols.size()>=8){
        //get col no 2
        System.out.println(cols.get(1).getText());
        //get col no 8
        System.out.println(cols.get(7).getText());
    }
}

答案 1 :(得分:0)

这里是另一种方式:使用javascript。

String cellValue = js.executeScript("return arguments[0].children[0].children[arguments[1]].children[arguments[2]].innerText", tableElement, rowIndex, columnIndex));

这基于以下javascript代码,其中r = rowIndex和c = columnIndex

document.querySelector("#table").children[0].children[r].children[c].innerText