如何解决XPath使用类名并包含文本
我一直在寻找有关如何找到具有类且包含文本的元素的答案。
我有两个答案。
-
//div[@class='credit_summary_item' and contains(text(),'Professor']
: 如HTML XPath Searching by class and text -
//div[contains(@class,'credit_summary_item') and contains(.,'Professor')]
: 如XPath to match @class value and element value?
对我来说,只有第二个答案有效。 谁能解释“包含文本”部分的区别?由于两个答案都没有提及。
解决方法
要进行演示,请考虑以下HTML:
<div class="credit_summary_item">Professor</div>
有:
- 仅class属性的一个值,即
credit_summary_item
。 - 内部文本(即教授)不包含开头和结尾空格。
因此,要找到此元素,您可以使用以下任一解决方案:
-
使用
text()
://div[@class='credit_summary_item' and text()='Professor']
-
使用
contains()
://div[@class='credit_summary_item' and contains(.,'Professor')]
此用例
但是在您的用例中,似乎contains(@class,'credit_summary_item')
起作用了,这意味着该元素具有多个类。因此,除了credit_summary_item
之外,还有一些其他值作为类属性存在。
就我而言,html 如下所示:
<ki5-tab text="Super Boal" ki5-tab="" slot="default-1" selected="true"></ki5-tab>
xpath :
//ki5-tabcontainer/ki5-tab[contains(@text,'Boal')]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。