使用XPATH查找基于文本的li包含对<b>标记</b>后的文本不起作用

时间:2015-04-07 12:41:55

标签: html xpath

所以我在页面上找到了一些li并且我试图用一些XPATH来识别它,唯一的麻烦是我需要确保所有文本匹配所以我需要识别所有的文本中有一个给我带来麻烦(我使用chrome插件验证XPATH并且在我尝试时它一直告诉我它为null),欢迎任何建议!

这是页面上的html: -

<li>
    Some pre text, <b>bold</b> nothing here is identified.
</li>

以下是我尝试过的不起作用: -

//ul/li[contains(text(),'') and contains(text(),'bold') and contains(text(),'nothing here is identified')]

我也尝试过这只是为了看看它是否有效(请记住我的XPATH需要检查该li中的所有文本),但它根本不会使用粗体标签之后的任何文本来识别它。

//ul/li[contains(text(),'nothing here is identified')]

什么明显的XPATH技巧和我错过了??

干杯

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容:

//ul/li[contains(.,'') and contains(.,'bold') and contains(.,'nothing here is identified')]

使用text()将为您提供三个文本节点,因为有3个节点infact,在contains()中使用时将是一个无法恢复的错误:

  1. Some pre text,
  2. bold
  3. nothing here is identified.
  4. 但是使用.current()(这两个意思相同),只会给你一个字符串(上面提到的所有三个节点的连接)。