私がこれを持っているとしましょう(簡略化されています):
<form id="myform">
<!-- some input fields -->
<input type="submit" value="proceed"/>
</form>
次に、XPathで送信ボタンを選択します//form[@id='myform']/input[@type='submit']
。すごい。
ただし、テンプレートが変更される可能性があり、送信ボタンが配置されている深さで柔軟にしたいと考えています。次のように、テーブルに入れることができます。
<form id="myform">
<!-- some input fields -->
<table><tr><td>
<input type="submit" value="proceed"/>
</td></tr></table>
</form>
孫である要素を選択できることは知っていますが、どの深さのgrand-grand-grand -...- childerenも選択できません。例えば:
//form[@id='myform']/*/input[@type='submit']
孫だけを選択し、それ以上の深さは選択しません。//form[@id='myform']/*/*/input[@type='submit']
孫孫のみを選択し、それ以上またはそれ以下の深さは選択しません。//form[@id='myform']/**/input[@type='submit']
有効ではない。
では、要素IDを使用せずにこの送信ボタンを確実に選択するにはどうすればよいですか?
//form//input
C#ではnullを返しますが、Chromeは同じxpathを使用して35個の入力を検出できます