Supposons que j'ai ceci (simplifié) :
<form id="myform">
<!-- some input fields -->
<input type="submit" value="proceed"/>
</form>
Ensuite, je peux sélectionner le bouton de soumission par XPath //form[@id='myform']/input[@type='submit']
. Super.
Cependant, mes modèles sont susceptibles de changer et je veux être flexible quant à la profondeur dans laquelle se trouve le bouton d'envoi. Il pourrait être placé dans un tableau, comme celui-ci :
<form id="myform">
<!-- some input fields -->
<table><tr><td>
<input type="submit" value="proceed"/>
</td></tr></table>
</form>
Je sais que je peux sélectionner des éléments qui sont des petits-enfants, mais je ne peux pas sélectionner des arrière-arrière-arrière-arrière-arrière...-enfants de n'importe quelle profondeur. Par exemple :
-
//form[@id='myform']/*/input[@type='submit']
ne sélectionne que les petits-enfants, sans autre profondeur. -
//form[@id='myform']/*/*/input[@type='submit']
ne sélectionne que les arrière-petits-enfants, pas plus ou moins de profondeur. -
//form[@id='myform']/**/input[@type='submit']
n'est pas valide.
Alors, comment puis-je sélectionner ce bouton d'envoi de manière fiable sans utiliser les ID des éléments ?