Элемент XPath, который содержит атрибут и чей родитель родителя содержит другой атрибут

Это - мое первое сообщение здесь и так как я видел много больших ответов, я думал, что дам ему попытку.

Я пытаюсь использовать 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? Раз так может кто-то хорошо осведомленный, помогите?

6
задан gtaborga 2 February 2010 в 01:45
поделиться

1 ответ

Вы можете сделать:

//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. А Базовое руководство можно найти здесь .

13
ответ дан 8 December 2019 в 18:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: