История страницы
...
- string concat(string, string, …) — возвращает конкатенацию аргументов;
- boolean contains(string, string) — принимает на вход два строковых аргумента и возвращает true, если первая строка содержит вторую и false в противном случае;
- string normalize-space(string?) — удаляет начальные и завершающие разделительные символы, нормализует все внутренние идущие подряд разделители в один пробел. Если аргумент опущен, выполняется со строковым значением контекстного узла;
- boolean starts-with(string, string) — принимает на вход два строковых аргумента и проверяет начинается ли первая строка со второй;
- string string(object?) — приводит объект к строковому типу явным образом. Если аргумент опущен, то применяется к множеству контекстного узла;
- number string-length(string?) — возвращает длину переданного ей строкового аргумента. Если аргумент опущен, то применяется к контекстному узлу;
- string substring(string, number, number?) — возвращает подстроку переданного ей строкового аргумента, начинающуюся с позиции определенной вторым аргументом и длиной, указанной третьим аргументом. Если третий аргумент не передан, то подстрока продолжается до конца строки;
- string substring-after(string, string) — принимает на вход два строковых аргумента, находит в первой строке вторую и возвращает подстроку, которая за ней следует;
- string substring-before(string, string) — принимает на вход два строковых аргумента, находит в первой строке вторую и возвращает подстроку, которая ей предшествует;
- string translate(string, string, string) — производит замену символов первого своего строкового аргумента, которые присутствуют во втором аргументе на соответствующие символы третьего аргумента.
Операторы. Также в xpath можно использовать логические операторы or и and:
...
- Поиск по тексту внутри элемента:
- Обычный поиск. //span[text()='Войти']. Очень часто текст элемента может содержать лишние пробелы, в там случае используем функцию normalize-space(). //span[normalize-space(text())='Войти'].
- Поиск элемента, содержащего указанный текст. //span[contains(text(),'Войти')].
- Поиск содержания текста в начале или в конце. Если со starts-with() все понятно, то с ends-with есть проблемы, данная функция не работает в xpath v1.0.
Но есть обходной путь: //div[substring(text(), string-length(text())- string-length('системе') + 1) = 'системе']. Так мы найдем элемент, текст которого заканчивается на "системе". - Поиск элемента (//a[@class='test']) внутри какого-то конкретного элемента (в данном случае форма //form[@id='f']).
//form[@id='f']//a[@class='test'] - Это чувствительно к регистру
//*[contains(translate(., 'TEST', 'test'), 'test')].
Обзор
Инструменты контента