XPath使用类名并包含文本

问题描述

我一直在寻找有关如何找到具有类且包含文本的元素的答案。

我有两个答案。

对我来说,只有第二个答案有效。 谁能解释“包含文本”部分的区别?由于两个答案都没有提及。

解决方法

要进行演示,请考虑以下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')]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...