根据已知嵌套td元素的表标题的xpath

时间:2013-11-03 23:51:11

标签: html xpath selenium

根据已知的td类,我试图为标题创建xpath。

<tr>
<td class="...">
    <table class="...">
        ...
    </table>
</td>   
<td class="...">    
    <table class="...">
        <caption class="...">CAPTION_WANTED</caption>
        <colgroup>
            ...
        </colgroup>
        <tbody>
            ...
            <tr class="...">
                ...
            </tr>
            <tr class="...">
                ...
                <td class="...">
                    ...
                </td>
                <td class="TD_KNOWN">
                    <div class="...">...</div>
                </td>
                ...
            </tr>
            ...
        </tbody>
    </table>
</td>
</tr>
...

我尝试了这个://*tr[KNOWN_ID]/td/table[tbody[tr[td[@class,"TD_KNOWN"]]]]/caption但它不起作用。 当我想要包含含有smth的smth的smth时,我应该使用方括号吗?

1 个答案:

答案 0 :(得分:1)

这些XPath中的任何一个:

//td[@class="TD_KNOWN"]/../../../caption

//td[@class="TD_KNOWN"]/ancestor::table[1]/caption

应用于您的输入XML将产生:

<caption class="...">CAPTION_WANTED</caption>

根据您的要求。

如果您想要文本本身,只需将/text()附加到上述任一XPath中即可。例如,

//td[@class="TD_KNOWN"]/ancestor::table[1]/caption/text()

将产生

CAPTION_WANTED