Как этот 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"