通过XPATH匹配不在同一节点中的两个元素

通过XPATH匹配不在同一节点中的两个元素,xpath,Xpath,我需要匹配不在同一节点中的两个元素。每个xpath选择器本身都是有效的,但我需要将它们放在一起。我试过在他们之间使用and,但不起作用 单独工作的选择器: //label[@class='NewLabel'] //span[contains(text(),'jimbo.smith')] HTML: 这个XPath //*[self::label[@class='NewLabel'] or self::span[contains(.,'jimbo.smith')]] 将选择类属性值为NewL

我需要匹配不在同一节点中的两个元素。每个xpath选择器本身都是有效的,但我需要将它们放在一起。我试过在他们之间使用and,但不起作用

单独工作的选择器:

//label[@class='NewLabel']

//span[contains(text(),'jimbo.smith')]
HTML:

这个XPath

//*[self::label[@class='NewLabel'] or self::span[contains(.,'jimbo.smith')]]

将选择类属性值为NewLabel的所有标签元素,以及包含子字符串jimbo.smith的字符串值的所有span元素。

您想要的输出是什么?我认为在这里指出这一点很重要,因为OP希望在XPath之间放置and,钥匙正在使用or@BillHileman:是的,从通俗的意义上讲,label和span元素都是必需的,但从逻辑上讲,这会转化为连接测试之间的or。
//*[self::label[@class='NewLabel'] or self::span[contains(.,'jimbo.smith')]]