W3Schools предлагает действительно хорошие бесплатные курсы по всему, что связано с HTML.
Я настоятельно рекомендую прочитать это и сделать примеры.
http://www.w3schools.com/xsl/xpath_syntax.asp
СОВЕТ : вы можете использовать консоль браузера для оценки выражений. Он находится в разделе Инструменты разработчика - клавиша F12 для Chorme и Firefox:
$x('<your expressions>');
Итак, как все говорили, вы можете использовать синтаксис //
, чтобы найти элемент в любом месте страницы.
например //a
вернет вам все a
элементов на странице.
Скорее всего, вам понадобится конкретный, так что именно здесь вы используете предикаты. Они заключены в квадратные скобки.
Используя эту страницу в качестве примера, вот xquery:
//a[text()="Simeon"]
Этот xpath вернет все элементы a
, в которых в качестве текста указан Симеон.
Во многих ситуациях вам может потребоваться улучшить ваш xpath, чтобы включить больше идентификаторов, а точнее.
//a[text()="Simeon" AND @href="/users/274344/simeon"]
Таким образом, вы можете использовать практически любой атрибут HTML или даже CSS для определения нужного вам узла.
Но теперь, давайте возьмем это на ступеньку выше.
Допустим, вы хотите получить элемент a
, который находится ниже пользовательского mkimd ответа от 27 января .
Если вы посмотрите на эту структуру страницы, вам нужно получить a
и вернуться на несколько уровней, пока вы не сможете достичь span , в котором содержится дата публикации.
//a[text()="mkimd" AND ../../div[@class="user-action-time"]/span[contains(.,"Jan")]]
Есть много способов выполнить эти запросы, последний пример, который я привел, может быть достигнут с помощью различных xqueries.
Я считаю, что xqueries очень похожи на навигацию в каталогах в консоли, как в Linux BASH - относительные и абсолютные пути, а идентификаторы похожи на SQL WHERE
предложения.
Если вы исследуете, есть много функций, доступных в синтаксисе XPATH, таких как
- нижний регистр ()
- верхний регистр () * * тысяча сорок-шесть
- CONCAT ()
- операторы (
+
, -
, *
, div
, !=
, <
, <=
, >
, ...)
Я настоятельно советую вам использовать какой-нибудь инструмент, например Firefox Firefug FirePath addon, чтобы попрактиковаться в xquery и проверить, получаете ли вы нужный элемент - он выделяет найденные элементы.
====================
РЕДАКТИРОВАТЬ - 8-15 мая
Если вы используете Xpath в автоматизации Selenium, знайте, что это не поможет вам выбрать псевдоэлементы CSS.