我有一个页面,我想使用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)
})

关于javascript - 如何找到我单击的页面的相对xpath(JavaScript),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59035374/

10-12 03:42