使用类名并包含文本的 XPath
XPath using classname and contains text
我正在寻找有关如何查找具有 class 并包含文本的元素的答案。
我有两个答案。
//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?
对我来说,只有第二个答案有效。
任何人都可以解释 'contains text' 部分的区别吗?因为两个答案都没有提到它。
要进行演示,请考虑以下内容 HTML:
<div class="credit_summary_item">Professor</div>
有:
- class 属性只有一个值,即
credit_summary_item
。
- 并且 innerText 即 Professor 不包含前导和尾随空格。
因此,要定位此元素,您可以使用以下任一解决方案:
使用text()
:
//div[@class='credit_summary_item' and text()='Professor']
使用contains()
:
//div[@class='credit_summary_item' and contains(., 'Professor')]
这个用例
但在您的用例中似乎 contains(@class, 'credit_summary_item')
有效,这意味着该元素有多个 class。因此,除了 credit_summary_item
之外,还有一些其他值作为 class 属性存在。
在我的例子中,html 看起来像这样:
<ki5-tab text="Super Boal" ki5-tab="" slot="default-1" selected="true"></ki5-tab>
xpath :
//ki5-tabcontainer/ki5-tab[contains(@text,'Boal')]
我正在寻找有关如何查找具有 class 并包含文本的元素的答案。
我有两个答案。
//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?
对我来说,只有第二个答案有效。 任何人都可以解释 'contains text' 部分的区别吗?因为两个答案都没有提到它。
要进行演示,请考虑以下内容 HTML:
<div class="credit_summary_item">Professor</div>
有:
- class 属性只有一个值,即
credit_summary_item
。 - 并且 innerText 即 Professor 不包含前导和尾随空格。
因此,要定位此元素,您可以使用以下任一解决方案:
使用
text()
://div[@class='credit_summary_item' and text()='Professor']
使用
contains()
://div[@class='credit_summary_item' and contains(., 'Professor')]
这个用例
但在您的用例中似乎 contains(@class, 'credit_summary_item')
有效,这意味着该元素有多个 class。因此,除了 credit_summary_item
之外,还有一些其他值作为 class 属性存在。
在我的例子中,html 看起来像这样:
<ki5-tab text="Super Boal" ki5-tab="" slot="default-1" selected="true"></ki5-tab>
xpath :
//ki5-tabcontainer/ki5-tab[contains(@text,'Boal')]