Cela pourrait être utile à quelqu'un d'autre : En utilisant cet exemple de code html
<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, par exemple, je veux sélectionner un élément dans la même section (par exemple div) comme étiquette, vous pouvez utiliser ceci
//label[contains(., 'labelName')]/parent::*//input[@value='elementToSelect']
Cela signifie simplement qu'il faut chercher une étiquette (qui peut être n'importe quoi comme a
, h2
) appelé labelName
. Naviguez jusqu'au parent de cette étiquette (c'est à dire div class="ParentDiv"
). Cherchez dans les descendants de ce parent pour trouver tout élément enfant ayant la valeur de elementToSelect
. Ainsi, il ne sélectionnera pas le deuxième elementToSelect
con DontSelect
div comme parent.
L'astuce est que vous pouvez réduire les zones de recherche d'un élément en naviguant d'abord vers le parent, puis en recherchant dans les descendants de ce parent l'élément dont vous avez besoin. Autres syntaxes comme following-sibling::h2
peut également être utilisé dans certains cas. Cela signifie que l'élément frère suivant h2
. Cela fonctionnera pour les éléments de même niveau, ayant le même parent.