Предположим, у меня есть это (упрощенное):
<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>
Я знаю, что могу выбирать элементы, которые являются внуками, но я не могу выбирать внуков, прапнуков -...- детей любой глубины. Например:
//form[@id='myform']/*/input[@type='submit']
выбирает только внуков, без дальнейших глубин.//form[@id='myform']/*/*/input[@type='submit']
выбирает только правнуков, не более или менее глубины.//form[@id='myform']/**/input[@type='submit']
не действует.
Итак, как мне надежно выбрать эту кнопку отправки без использования идентификаторов элементов?
//form//input
возвращает null в C #, в то время как Chrome может найти 35 входов с использованием того же xpath