XPath测试子元素中的文本?

时间:2016-08-24 11:29:35

标签: html xml xpath

我的HTML格式为表格格式(不是<table>)。我需要检查给定的row是否具有所有值。

...
<div id="rows">
  <div class="row">
    <p>Java</p>
    <p>Ruby</p>
  </div>
  <div class="row">
    <p>HTML</p>
    <p>Ruby</p>
  </div>
</div>
...

如果Java AND Ruby中有row,如何使用xpath进行检查?

我试过了//p[text()='Java' and text()='Ruby'],但效果不好。还尝试了//div[@id='rows']//p[contains(text(),'Java') and contains(text(),'Ruby')]

2 个答案:

答案 0 :(得分:1)

尝试使用以下xpath: -

//div[normalize-space(.) = 'Java Ruby']

//div[@class = 'row' and contains(.,'Java') and contains(.,'Ruby')]

或者如果您希望div的ID为rows且包含多个,请尝试: -

//div[@id= 'rows' and contains(.,'Java') and contains(.,'Ruby')]

答案 1 :(得分:1)

这个XPath,

//div[@class='row' and p='Java' and p='Ruby']

将选择div/@class='row'个孩子中包含JavaRuby字符串值的所有p元素。