函数给出最短的唯一xpath

时间:2016-03-01 11:11:06

标签: javascript selenium xpath

我正在尝试获取网页上任何元素的xpath,我已经尝试过并在stackoverflow上得到了一些答案,但生成的xpath更长,它是正确的但很长。 就像在selenium中一样,它提供了小的独特xpath。有没有更好的功能,我可以用来获得最小的独特xpath?

我引用了这个链接:I'm storing click coordinates in my db and then reloading them later and showing them on the site where the click happened, how do I make sure it loads in the same place?

这是我使用的功能:

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++;
        }
    }
}

0 个答案:

没有答案