我正在尝试获取网页上任何元素的xpath,我已经尝试过并在stackoverflow上得到了一些答案,但生成的xpath更长,它是正确的但很长。 就像在selenium中一样,它提供了小的独特xpath。有没有更好的功能,我可以用来获得最小的独特xpath?
这是我使用的功能:
function getPathTo(element) {
if (element.id!=='')
return "//*[@id='"+element.id+"']";
if (element===document.body)
return element.tagName.toLowerCase();
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.toLowerCase() + '[' + (ix + 1) + ']';
if (sibling.nodeType===1 && sibling.tagName === element.tagName) {
ix++;
}
}
}