如何在 javascript 中按元素查找 Xpath

How to find the Xpath by element in javascript

每个人都知道使用 Xpath 查找元素,那里有多种工具可以查找元素。但我有元素。但是如何使用 javascript 找到该元素的 xpath。有什么办法可以找到Xpath吗

document.addEventListener('click', function(e) {
    
    e = e || window.event;
    var target = e.target || e.srcElement,
        text = target.textContent || target.innerText;   
        alert(target.srcElement);
       
}, false);

a comment on SO page,可能对您有帮助:

// Returns XPATH to element
function getPathTo(element) {
    if (element.tagName == 'HTML')
        return '/HTML[1]';
    if (element===document.body)
        return '/HTML[1]/BODY[1]';

    var ix= 0;
    var siblings= element.parentNode.childNodes;
    for (var i= 0; i<siblings.length; i++) {
        var sibling= siblings[i];
        if (sibling===element)
            return getPathTo(element.parentNode)+'/'+element.tagName+'['+(ix+1)+']';
        if (sibling.nodeType===1 && sibling.tagName===element.tagName)
            ix++;
    }
}

// Usage examples:

const spanElem = getPathTo(document.getElementById('mySpan'));
console.log(spanElem);
// Output: "/HTML[1]/BODY[1]/DIV[1]/SPAN[1]"

const iElem = getPathTo(document.getElementsByTagName('i')[0]);
console.log(iElem);
// Output: "/HTML[1]/BODY[1]/DIV[1]/I[1]"
<div>
  <span id="mySpan">Some</span>
  <i>test</i>
</div>

演示 - https://codepen.io/vyspiansky/pen/abNpOoE?editors=1111