ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
XpathПримерыКомментарии
2
Строковые функции
3
string() - возвращает текстовое содержимое элемента. По сути возвращает объединенное множество текстовых узлов на один уровень ниже (string string(object))1. string(//ul[@id="number"])
2. string(//div[@class='one-third alpha columns']//p)
3. string(//div[@class='list-4']/ul[count(li)=4])
1. вернет все текстовое содержимое элемента (<ul[@id="number"]>) результат выполнения функции 1 2 3
4
contains - возвращает true, если первая строка содержит вторую, иначе возвращает false (boolean contains(string, string))1. //*[contains(text(), 'Пароль')]
2. //h3[contains(text(), 'How to start')]
3. //div[contains(@class, 'featured')]/h3/a[contains(text(), 'Plugins')]
1. вернет все элементы, которые содержат текст “Пароль”
5
concat() - объединяет две или более строк (string concat(string, string, string*))1. //li[contains(text(), concat('1','2','3'))]
2. //a[contains(text(), concat('Continuous',' ', 'integration'))]
3. //li[contains(@id, concat('menu-','item-', '1478'))]
1. данных XPath объединит строки “1” ”2” ”3” и произведет поиск по элементу (<li>) в котором содержится текст “123”
6
string-length() - возвращает длину строки (number string-length(string))1. //*[string-length(name())<=2]
2. //*[string-length(text())>10]
3. //*[string-length(p[text()])>150]
4. //*[string-length(p[text()])>150]//a[string-length(text())=7]
1. вернет все элементы, длинна имени тегов которых меньше либо равно
2. вернет все элементы, длинна текста которых больше 10 символов
7
substring() - возвращает строку вырезанную из строки начиная с указанного номера, второй параметр number (необязательный) — количество символов (string substring(‘string’, number, number))1. //*[contains(text(), substring('Блок1вавав', 1, 5))]
2. //*[contains(@id, substring('aq-block-880-2', 8, 6))]
1.substring('Блок1вавав', 1, 5) функция возьмет 5 символов, начиная с первого. Результат выполнения функции “Блок1”.
2. Выбираем все элементы в которых содержится атрибут @id с текстом ‘aq-block-880-2’. Далее текст 'aq-block-880-2' обрезаем 6 символов, начиная с 8 символа .
8
string substring-before (string, string) - если найдена вторая строка в первой, возвращает строку до первого вхождения второй строки1. //*[contains(text(), substring-before('Блок1/блабла/', '/'))]1. substring-before('Блок1/блабла/', '/') обрежет весь текст, который встречается после первого “/” включая сам “/”. Результат “Блок1”. Далее в XPath подставиться результат выполнения функции substring-before. Теперь XPath будет искать на странице элементы в которых содержится текст “Блок1”. //*[contains(text(), 'Блок1')]
9
string substring-after(string, string) - если найдена вторая строка в первой, возвращает строку после первого вхождения второй строки.1. //*[contains(text(), substring-after('блабла/Блок1', '/'))]1. Все тоже самое, что в предыдущей функции, только теперь обрежется текст до “/” включая сам “/”.
10
boolean starts-with (string, string) - возвращает true если первая строка начинается со второй, иначе возвращает false.1. //h1[starts-with('div', 'd')]
2. //a[starts-with(text(), 'View')]
1. Функция starts-with('div', 'd') проверит, присутствуют ли на странице элементы “div” которые начинаются с “d”
2. Выбирает все элементы (<a>) которые начинаются с текста 'View'
11
string normalize-space (string) - убирает лишние и повторные пробелы, а также управляющие символы, заменяя их пробелами1. //*[contains(text(), normalize-space(' пункт 1 '))]normalize-space(' пункт 1 ') обрежет лишние пробелы и вернет текст в нормально виде “пункт 1”.
12
string translate (string, string, string) - заменяет символы первой строки, которые встречаются во второй строке, на соответствующие позиции символам из второй строки символы из третьей строки. translate(«cat», «abc», «ABC») вернет CAt.1. //*[contains(text(), translate('БЛОК1', 'ЛОК', 'лок'))], вернет “Блок1”.
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100