Esto podría ser útil para otra persona: Usar este HTML de muestra
<div class="ParentDiv">
<label for="label">labelName</label>
<input type="button" value="elementToSelect">
</div>
<div class="DontSelect">
<label for="animal">pig</label>
<input type="button" value="elementToSelect">
</div>
Si, por ejemplo, quiero seleccionar un elemento en la misma sección (por ejemplo, div) como etiqueta, puede usar esto
//label[contains(., 'labelName')]/parent::*//input[@value='elementToSelect']
Esto sólo significa, busque una etiqueta (Podría algo así a, h2) llamado labelName. Navegue hasta el padre de esa etiqueta (es decir div class="ParentDiv"). Busque dentro de los descendientes de ese padre para encontrar cualquier elemento hijo con el valor de elementToSelect. Con esto, no seleccionará el segundo elementToSelectcon DontSelectdiv como padre.
El truco es que puede reducir las áreas de búsqueda de un elemento navegando primero al padre y luego buscando el elemento que necesita en el descendiente de ese padre. following-sibling::h2En algunos casos también se pueden utilizar otras sintaxis similares . Esto significa el elemento siguiente del hermano h2. Esto funcionará para elementos del mismo nivel, que tengan el mismo padre.