Вы можете попробовать начать с первого предшествующего брата :
//h2[contains(text(),'Locator')]/preceding-sibling::*[1]/following-sibling::*
, но это не будет работать, если целевой h2
узел - первый дочерний элемент (не имеет предшествующих братьев и сестер)
Так что лучше использовать:
//*[preceding-sibling::h2[.="Locator"]] | //h2[.="Locator"]
, чтобы выбрать все последующие элементы заголовка «Локатор» и самого заголовка.
Или то же самое с вашим начальным XPath
//h2[contains(text(),'Locator')]/following-sibling::* | //h2[contains(text(),'Locator')]