JavaScript 전역 클릭 이벤트 감청 및 XPath 계산

1474 단어
최근 에 자동화 테스트 도 구 를 만 들 었 기 때문에 스 크 립 트 녹화 기능 이 필요 하기 때문에 조회 자 료 를 여기에 기록 하 세 요. 두 가지 핵심 기술 점:
  • DOM 요소 에 따라 대응 하 는 XPath 획득
  • JS 가 전체 요소 클릭 사건 을 감청
  • //  xpath
    function readXPath(element) {
        if (element.id !== "") {//  id  ,       id,    //*[@id="xPath"]      
            return '//*[@id=\"' + element.id + '\"]';
        }
        //               ,   js     html         (       )
        if (element == document.body) {//   body ,    
            return '/html/' + element.tagName.toLowerCase();
        }
        var ix = 1,// nodelist    ,        
             siblings = element.parentNode.childNodes;//      
    
        for (var i = 0, l = siblings.length; i < l; i++) {
            var sibling = siblings[i];
            //       siblings      ,       
            if (sibling == element) {
                return arguments.callee(element.parentNode) + '/' + element.tagName.toLowerCase() + '[' + (ix) + ']';
                //     ,     element  ,         ,           
            } else if (sibling.nodeType == 1 && sibling.tagName == element.tagName) {
                ix++;
            }
        }
    };
    
    $(document).ready(function () {
        var xpath = '', o;
        $('*').click(function (e) {
            e.stopPropagation();//    
            o = this;
            alert(readXPath(o));
        });
    });
    

    참고 글:https://blog.csdn.net/u010085423/article/details/54628799 https://segmentfault.com/q/1010000005686667

    좋은 웹페이지 즐겨찾기