Я ищу что-то вроде:
getElementByXpath(//html[1]/body[1]/div[1]).innerHTML
Мне нужно получить innerHTML элементов с использованием JS (чтобы использовать это в Selenium WebDriver / Java, поскольку WebDriver не может найти его сам), но как?
Я мог бы использовать атрибут ID, но не все элементы имеют атрибут ID.
[ФИКСИРОВАННЫЙ]
Я использую jsoup, чтобы сделать это на Java. Это работает для моих нужд.
html
иbody
селекторы излишни так как DIV должен быть потомком ТЕЛА (непосредственным или глубже) и тело должно быть ребенком HTML, поэтому при условии , нет никаких других элементов DIV в документе,//DIV[1]
должны работать (хотя я довольно ржавый на XPath выражениях). Эквивалент DOM естьdocument.getElementsByTagName('div')[1]
(или может быть0
).Ответы:
Вы можете использовать
document.evaluate
:Он стандартизирован по w3 и полностью документирован: https://developer.mozilla.org/en-US/docs/Web/API/Document.evaluate.
https://gist.github.com/yckart/6351935
В сети разработчиков Mozilla также есть отличное введение: https://developer.mozilla.org/en-US/docs/Introduction_to_using_XPath_in_JavaScript#document.evaluate.
Альтернативная версия, используя
XPathEvaluator
:Показать фрагмент кода
источник
XPathResult.FIRST_ORDERED_NODE_TYPE === 9
developer.mozilla.org/en-US/docs/...В Chrome Dev Tools вы можете запустить следующее:
источник
Для чего-то вроде $ x из api командной строки chrome (для выбора нескольких элементов) попробуйте:
Этот обзор MDN помог: https://developer.mozilla.org/en-US/docs/Introduction_to_using_XPath_in_JavaScript
источник
Вы можете использовать документ document.evaluate для запуска выражения XPath в DOM. Я думаю, что это поддерживается так или иначе в браузерах до IE 6.
MDN: https://developer.mozilla.org/en-US/docs/Web/API/Document/evaluate
IE поддерживает selectNodes вместо этого.
MSDN: https://msdn.microsoft.com/en-us/library/ms754523(v=vs.85).aspx
источник
Предполагая, что вашей целью является разработка и тестирование ваших запросов xpath для экранных карт. Затем используйте инструменты разработчика Chrome . Это позволяет вам выполнить запрос xpath, чтобы показать совпадения. Или в Firefox> 9 вы можете сделать то же самое с консолью Web Developer Tools . В более ранней версии используйте x-path-finder или Firebug .
источник
Убедитесь, что вы используете правильный локатор для него.
источник
источник
источник
Чтобы перейти к сути, вы можете легко использовать xapth. Точный и простой способ сделать это с помощью приведенного ниже кода. Пожалуйста, попробуйте и оставить отзыв. Спасибо.
Дальнейшие чтения - https://medium.com/@smeesheady/webdriver-javascriptexecutor-interact-with-elements-and-open-and-handle-multiple-tabs-and-get-url-dcfda49bfa0f
источник