选择除嵌套网格之外的网格单元格的XPath

时间:2018-04-20 16:46:40

标签: html xpath web

我正在构建一个XPath,它选择网格中的单元格,按列和行索引。我在应用程序中有两种类型的网格。一个是常规网格,另一个是嵌套网格(在其内部)。

我想要一个适用于两个网格的XPath。

(黄色单元格表示XPath选择)

常规网格:

enter image description here

的XPath:
//*[@id='regularGrid']//table/tbody/tr[1]/td[1]

HTML:

<div id="regularGrid">
    <table>
        <tbody>
            <tr role="row">
                <td>Things</td>
                <td>Things</td>
            </tr>
            <tr></tr>
        </tbody>
    </table>
</div>

嵌套网格(错误地选择嵌套的TD):
enter image description here

的XPath:
//*[@id='gridWithNestedGrid']//table/tbody/tr[1]/td[1]

HTML:

<div id="gridWithNestedGrid">
<div class="k-grid-content">
    <table>
        <tbody>
            <tr class="k-master-row ng-scope" role="row">
                <td>1390</td>
                <td>1625</td>
                <td>625</td>
            </tr>
            <tr class="k-detail-row ng-scope" role="row">
                <td class="k-detail-cell">4167</td>
                <td class="k-detail-cell">486</td>
                <td class="k-detail-cell">6834</td>
            </tr>
            <tr></tr>
        </tbody>
    </table>
</div>

问题: 我需要一个XPath,它适用于两个不选择嵌套网格的网格。问题是嵌套的网格div嵌套在div中。

以下XPath适用于嵌套网格:

//*[@id='gridWithNestedGrid']/div/table/tbody/tr[1]/td[1]

enter image description here

但我需要一个适合两者的。

1 个答案:

答案 0 :(得分:1)

此合并的XPath选择:

//*[@id='gridWithNestedGrid' or @id='regularGrid']//table/tbody/tr[1]/td[1]

第一个(regularGrid)的输出:

Things

第二个(gridWithNestedGrid)的输出:

1390

这是你期望的结果吗?