【问题标题】:HTML XPath Searching by class and textHTML XPath 按类和文本搜索
【发布时间】:2013-05-09 16:00:40
【问题描述】:

我想按类和文本查找 xpath 中的所有元素。我已经尝试过了,但它不起作用。

//*[contains(@class, 'myclass')]//*[text() = 'qwerty']

我正在尝试查找所有具有“myclass”类且文本为“qwert”的元素(这些将是 span 元素)

【问题讨论】:

    标签: html xpath


    【解决方案1】:
    //span[contains(@class, 'myclass') and text() = 'qwerty']
    

    //span[contains(@class, 'myclass') and normalize-space(text()) = 'qwerty']
    

    【讨论】:

    • 这个解决方案对我不起作用。这个做到了——“并且包含(。,'qwerty')”。在这里找到解决方案:stackoverflow.com/questions/19503721/…
    • @Andrey 写“这不适合我”而不告诉你做了什么并不是非常有用。无论如何,上面的代码对于这个线程中的问题是正确的,如果你的情况不同,你不能只是复制和粘贴代码也就不足为奇了。
    • 我并不是要暗示你的答案是错误的。 (特别是考虑到赞成票的数量)。但是,我确实希望人们会发现我的链接无论出于何种原因都对他们不起作用。问候。
    • 嗯,你是对的。有一个交叉链接并不是那么糟糕。
    • 这对我不起作用,但确实如此: //span[contains(@class, 'myclass') and contains(., 'querty')]
    【解决方案2】:

    任何寻找 XPath 表达式以基于类和文本进行搜索的人的通用解决方案:

    只有“myclass”:

    //*[@class='myclass' and contains(text(),'qwerty')]
    

    包含“myclass”:

    //*[contains(@class,'myclass') and contains(text(),'qwerty')]
    

    【讨论】:

    • 是的,一年多后,我找到了可以帮助我的答案。祝福我。
    • @Evdzhan 它发生时很好。 :)
    【解决方案3】:

    假设条件如下:

    • class 属性只包含myclass
    • innerText 包含 qwerty(没有任何前导和尾随空格)

    您可以使用以下解决方案:

    //*[@class='myclass' and text()='qwerty']
    

    如果 innerText 包含 qwerty 以及一些前导和尾随空格,您可以使用以下任一解决方案:

    • 使用normalize-space()

      //*[@class='myclass' and normalize-space()='qwerty']
      
    • 使用contains()

      //*[@class='myclass' and contains(., 'qwerty')]
      

    【讨论】:

      猜你喜欢
      • 2017-10-05
      • 2017-03-29
      • 2023-03-17
      • 2018-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-07
      相关资源
      最近更新 更多