Чтобы начать ее использовать, достаточно скачать файл
wgxpath.install.js и включить его на вашей страницеЗатем вызовите метод w
gxpath.install() в коде страницы, который обеспечит доступ к document.evaluate, функции навигации Xpath, в текущем окне (window). Если вам нужно добавить функционал библиотеки в другом окне, достаточно передать указатель на это окно в метод install().Несмотря на растущую популярность CSS селекторов, XPath все еще остается полезным инструментом для выборки элементов в HTML документе. Особенно часто он используется в приложениях тестирования фронт-энда, таких как Selenium и Web Puppeteer. Ну, и иногда бывают случаи, когда Xpath является единственным возможным решением для доступа к определенным элементам на странице.
Если вы никогда не встречались с Xpath прежде, взгляние на пример: на странице результатов поиска Google, выражение
//li[@class=”g”][3] укажет на третий результат в списке. Это видно со скрина плагина Xpath Viewer к Хрому.
Основной сложностью в использовании XPath является отсуствие нативной поддержки в некоторых браузерах. К примеру, IE не поддерживает XPath на HTML документах. В результате этого многие разработчики вынуждены использовать решения на Javascript. Еще в 2005-ом инженеры Google-a выпустили библиотеку AJAXSLT, которая реализовывала правильную, но не очень быструю работу Xpath. Выполнение запросов этой библиотекой в IE было довольно долгим.
Позже, в 2007-ом, группа Cybozu Labs представила другую библиотеку, Javascript-XPath, которая была быстрее AJAXSLT в 10 раз. Многие приложения тестирования перешли на нее, и все было замечательно, но недолго. Библиотека довольно быстро лишилась поддержки, некому стало фиксить баги. Ну и ввиду того, что она была написана не на Google Closure, нам, гугловцам, было непросто внедрять ее в свои приложения. Библиотеку нужно было переписывать.
Но мы не просто портировали ее на Google Closure. Мы внесли некоторые исправления, которые существенно отразились на производительности библиотеки – наша версия работает на 30% быстрее оригинальной. В добавок, компилятор Closure смог ужать ее до 25 КБ, что на 40% меньше, чем Javascript-XPath. Ну, и наконец, мы уверены, что новая структуризация, и документация кода обеспечит скорость и легкость в дальнейшей поддержке библиотеки.
Отдельно хотим выразить благодарность двум нашим интернам Google-a, Michael Zhou и Evan Thomas, проделавшим большую часть работы в этом проекте.
Инженеры Google, Greg Dennis и Joon Lee.

