Как этот xpath и содержит функцию работает в следующем xpath

У меня есть xpath с функцией содержит. Я не знаю, что ., В содержится () означает, и как работает этот xpath? Кто-нибудь может сказать мне, пожалуйста? Благодарю.

xpath('//div[label//text()[contains(., "Faculty")]]//input')

2 ответа

. ссылается на текущий контекстный узел, который в вашем случае является текстовым узлом, так как . находится в выражении предиката (выражение в []) за text(), Разбейте ваше выражение XPath:

  • //div[...]: находить div элементы, в любом месте документа, где...
  • label: div имеет дочерний элемент label
  • //text()[contains(., "Faculty")]: и метка содержит нисходящие текстовые узлы, где значение текстового узла содержит литерал "Факультет"
  • //input: от таких div которые удовлетворяют всем вышеперечисленным критериям, возвращают элементы-потомки input

Так что xpath //div[label//text()[contains(., "Faculty")]]//input

//div[...]//input ищет все входные данные во всех div, которые соответствуют специальному условию в скобках

Состояние label//text()[contains(., "Faculty")]

поэтому у вышеприведенного div должен быть прямой потомок (на 1-м уровне), в котором на любом уровне ниже есть элемент с текстом, содержащим "Faculty"

Другие вопросы по тегам