作者:文艺犯 | 来源:互联网 | 2024-10-09 11:14
我有一个页面,并且我想使用Javascript来获取我在页面上单击的任何元素的相对xpath。
但是此代码似乎无效。如何使用此代码给我相对的xpath?
function getElementXPath(elt,theclass) {
var path = "";
for (; elt && elt.nodeType == 1; elt = elt.parentNode) {
idx = getElementIdx(elt);
xname = elt.tagName;
if (idx > 1) xname += "[" + idx + "]";
path = "/" + xname + path;
}
return path;
}
function getElementIdx(elt) {
var count = 1;
for (var sib = elt.previousSibling; sib; sib = sib.previousSibling) {
if (sib.nodeType == 1 && sib.tagName == elt.tagName) count++
}
return count;
}
document.addEventListener("click",(e) => {
document.querySelector("#xpath").value = getElementXPath(e.target);
alert(e.target.this.id + getElementXPath(e.target));
})
您可以对单击文档时发出的事件对象使用clientX / clientY。这是您可以使用的处理小功能:
const getCursorPosition = event => {
return {
x: event.clientX,y: event.clientY
}
}
window.addEventListener('click',e => {
const position = getCursorPosition(e)
console.log('click position: ',position)
})