【问题标题】:XPath using classname and contains textXPath 使用类名并包含文本
【发布时间】:2020-12-11 06:23:36
【问题描述】:

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

我有两个答案。

对我来说,只有第二个答案有效。 谁能解释一下“包含文本”部分的区别。?因为两个答案都没有提到它。

【问题讨论】:

    标签: selenium selenium-webdriver xpath webdriver xpath-1.0


    【解决方案1】:

    对于演示,请考虑以下 HTML:

    <div class="credit_summary_item">Professor</div>
    

    有:

    • 类属性只有一个值,即credit_summary_item
    • 并且 innerTextProfessor 不包含前导和尾随空格。

    因此,要找到此元素,您可以使用以下任一解决方案:

    • 使用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,还有一些其他的值作为类属性。

    【讨论】:

    • 我在 'contains(.,'')' 和 text()='' 之间感到困惑。现在明白了。谢谢
    【解决方案2】:

    在我的例子中,html 看起来像这样:

    <ki5-tab text="Super Boal" ki5-tab="" slot="default-1" selected="true"></ki5-tab>
    

    xpath:

    //ki5-tabcontainer/ki5-tab[contains(@text,'Boal')]
    

    【讨论】:

      猜你喜欢
      • 2020-09-28
      • 2010-09-19
      • 1970-01-01
      • 1970-01-01
      • 2019-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-16
      相关资源
      最近更新 更多