jossetter
jossetter

Reputation: 188

Xpath: Select parent link matching three child attributes

I need to select a link using xpath that matches the following three criterion:

parent @class = 'testItem'

child @class = 'icon icon_checked'

text = 'test text goes here!'

i'm unsure about where to put the text attribute in the xpath reference. i've tried many permutations of the following:

//a[@class="testItem" and child::span[@class="icon icon_checked"] and li[text()="test text goes here!"]]

my issue is that the text part is not in its own span.

here's the raw example:

<li>
<a class="testItem2" data-code="2" href="javascript:void(0);">
<span class="icon icon_checked"></span>
test text goes here2!
</a>
</li>

<li>
<a class="testItem" data-code="2" href="javascript:void(0);">
<span class="icon icon_checked"></span>
test text goes here!
</a>
</li>

Upvotes: 2

Views: 793

Answers (1)

jossetter
jossetter

Reputation: 188

Thanks for the help. I've found the answer.

I can simply change the last part of my xpath from li[text()="test text goes here!"] to .[text()="test text goes here!"]].

My final working xpath is:

//a[@class='testItem' and child::span[@class='icon icon_checked'] and .[text()='test text goes here!']]

Upvotes: 1

Related Questions