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 elementToSelect
con DontSelect
div 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::h2
En 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.