Используйте
(//a[text()='XXX'])[3]
Выражение:
//a[text()='XXX'][3]
выбирает каждый элемент a
, который имеет некоторый текстовый дочерний элемент со значением 'XXX'
и является третьим дочерним по отношению к его родительскому элементу. Очевидно, что таких узлов нет, и вы не хотите этого, но вам нужен 3-й из всех таких a
элементов.
Это точно выбирается первым выражением XPath выше .