Нужно найти на странице элемент по XPath и кликнуть по нему.
Нашел такую функцию:
function getElementByXpath(path) {
return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
}
Но результатом выполнения этой функции будет тип Node, у которого нет метода click.
Можно ли как-то привести тип Node к типу HtmlElement, чтобы можно было взаимодействовать с элементом?
Вот небольшой пример кода, который добавляет к первому найденному элементу onclick:
var headings = document.evaluate("/html/body//h2", document, null, XPathResult.ANY_TYPE, null);
/* Найти в документе все элементы h2
* В качестве результата будет получен узловой итератор. */
var thisHeading = headings.iterateNext();
thisHeading.onclick = function() {
alert('YES');
}
var alertText = "В данном документе заголовками 2-го уровня являются:\n";
while (thisHeading) {
alertText += thisHeading.textContent + "\n";
thisHeading = headings.iterateNext();
}
console.log(alertText);
Hi!
<h2>Element #1</h2>
<div>Just an div element</div>
<h2>Element #2</h2>
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости