xpath icon indicating copy to clipboard operation
xpath copied to clipboard

is there a way to group selectors to specify precedence?

Open dreyks opened this issue 2 years ago • 2 comments

I'm trying to generate the following xpath string (so that I get the deepest element that contains the text I need)

(//*[contains(normalize-space(string(.)), 'Text')]/@id)[position() = last()]

but

XPath.anywhere[XPath.string.n.contains('Text')].attr(:id)[XPath.position.equals(XPath.last)]

generates

//*[contains(normalize-space(string(.)), 'Text')]/@id[(position() = last())]

which is kinda logical, considering how the XPath gem works in general, but not what I want :)

I've looked through the code and looks like there's no way to add parenthesis to the on in a where expression, but maybe I'm missing something

I can't do the filtering in the ruby-land because this is only a part of my bigger XPath selector so I need it to return only one node

dreyks avatar Apr 13 '22 09:04 dreyks

Interesting! I don't think this is currently possible, unfortunately.

jnicklas avatar Apr 13 '22 13:04 jnicklas

yeah, that's what i was afraid of :)

thx for the response

dreyks avatar Apr 13 '22 13:04 dreyks