Xpath选择器,根据其子元素的内部文本选择元素

时间:2019-01-10 09:20:11

标签: html xpath

我有这个html:

<tbody>
    <tr id="1">
        <td>foo faa</td>
        <td>faa fii</td>
        <td>foo faa</td>
        <td>faa fuu</td>
    </tr>
    <tr id="2">
        <td>foo fuu</td>
        <td>fyy fuu</td>
        <td>foo foo</td>
        <td>fuu fii</td>
    </tr>
    <tr id="3">
        <td>fuu faa</td>
        <td>fii fuu</td>
        <td>fuu fuu</td>
        <td>fyy fee</td>
    </tr>
    <tr id="4">
        <td>foo foo</td>
        <td>fee faa</td>
        <td>fee fyy</td>
        <td>foo fuu</td>
    </tr>
</tbody>

在我的示例中,元素td包含两个单词,但实际上,元素td可能包含更多单词。并且tr元素可以包含更多4个td子元素。

我要根据其子元素的innerText选择tr元素。我希望能够搜索多个值。

例如:

  • 如果我搜索“ fuu”,“ foo”和“ fii”,则xpath的预期结果必须是ID为{1和2的元素tr

  • 如果我搜索“ fuu”和“ fii”,则xpath的预期结果必须是ID为tr且ID为1、2和3的元素。

  • 如果我仅搜索“ fee”,则xpath的预期结果必须是ID为{3}和{4}的元素tr

我尝试过:

//tr[*[contains(text(), 'fuu')] and *[contains(text(), 'foo')] and *[contains(text(), 'fii')]]

其工作正常http://xpather.com/Tdg5OGr2)。但是,也许存在一个更通用/更合适的解决方案,有人知道吗? 如果我想通过示例搜索十个单词,则xpath会变得很大x)

0 个答案:

没有答案