Это - мое первое сообщение здесь и так как я видел много больших ответов, я думал, что дам ему попытку.
Я пытаюсь использовать XPath для получения определенного элемента в документе HTML. Вот пример, базирующийся прочь веб-страницы Google:
XPath Test
Используя пример выше (который упрощен в целях обратиться за помощью), я хотел бы смочь найти входной элемент, имя которого ='q' и у кого есть предок, который является 5 родителями с именем ='f'.
Например, если бы я должен был сделать это в синтаксисе S.W.A.T., который является веб-библиотекой тестирования автоматизации с открытым исходным кодом, расположенной по http://ulti-swat.wikispaces.com, то синтаксис был бы следующие:
|AssertElementExists|Expression|name=q; parentElement.parentElement.parentElement.parentElement.parentElement.name=f|input |
Я только что начал изучать XPath и пытаюсь понять, как объединить предикаты с осями. Действительно ли возможно сделать выражения как это с XPath? Раз так может кто-то хорошо осведомленный, помогите?
Вы можете сделать:
//input[@name='q' and ancestor-or-self::*[@name='f']]
// -- input element whose name='q' and who has an ancestor with the name='f'
или
//input[@name='q' and ../../../../../../*[@name='f']]
// -- input element whose name='q' and who is 5 parents up with the name='f'
Вы можете использовать этот рабочий стол XPath Visualizer для проверки ваших выражений XPath. А Базовое руководство можно найти здесь .