44

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

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

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

4

3 回答 3

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

或者

//span[contains(@class, 'myclass') and normalize-space(text()) = 'qwerty']
于 2013-05-09T16:06:37.793 回答
29

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

班级只是“我的班级”:

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

包含“myclass”:

//*[contains(@class,'myclass') and contains(text(),'qwerty')]
于 2016-09-05T14:12:48.010 回答
0

假设条件如下:

  • 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')]
    
于 2020-08-21T21:41:13.530 回答