文本与撇号和链接组合的Xpath

时间:2015-11-03 22:09:48

标签: xpath

<div class="plan"> don't get <a class="ensure" href="https://google.com">linktext</a> more sentence here </div>

我试图让Xpath断言整个句子,这是所有带有撇号的文本和(链接+其文本)在1表达式中,如下所示。但它不起作用,请帮忙吗?

//div[contains(text() = 'don\'t get more sentence here']/a[contains(text()='linktext')]/@href']

2 个答案:

答案 0 :(得分:1)

指定撇号而不与单引号分隔符冲突的方式vary per the language hosting the XPath

但是,如果我怀疑您已经指定了目标div,那么您可能会在这里解决问题。如果匹配链接锚文本和div的结尾就足够了,你可以使用这个XPath:

//div[a[. = 'linktext'] and ends-with(., ' more sentence here ')]

答案 1 :(得分:1)

目前还不完全清楚你要完成的是什么,但这里有一个应该有效的表达方式:

//div[text()[contains(., "don't get")] and 
      text()[contains(., "more sentence here")]
     ]/a[contains(text(), 'linktext')]/@href

这也应该有效:

//div[contains(., "don't get") and 
      contains(., "more sentence here")
     ]/a[contains(., 'linktext')]/@href

示例中的div有两个单独的文本节点,因此您不能同时在这两个文本节点上使用单个contains()