国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

無(wú)痕埋點(diǎn)之XPath

mingzhong / 1773人閱讀

摘要:在這里我們是用來(lái)標(biāo)識(shí)頁(yè)面元素控件的唯一性至于什么是,可以自行。有它算出的功能打開(kāi)一個(gè)網(wǎng)頁(yè),,在彈出的小窗口中選中一個(gè)標(biāo)簽,右鍵,看到了吧點(diǎn)下然后粘貼下就知道這元素的標(biāo)簽的多少了瀏覽器中通過(guò)獲取和根據(jù)獲取元素

在這里我們是用XPath來(lái)標(biāo)識(shí)頁(yè)面元素、控件的唯一性

XPath

至于什么是XPath,可以自行g(shù)oogle。chrome有它算出XPath的功能!打開(kāi)一個(gè)網(wǎng)頁(yè),F(xiàn)12,在彈出的小窗口中選中一個(gè)標(biāo)簽,右鍵,看到“copy XPath”了吧!點(diǎn)下然后粘貼下就知道這元素的標(biāo)簽的XPath多少了

Javascript get XPath and find element by XPath

Chrome瀏覽器中通過(guò)js獲取xpath和根據(jù)xpath獲取元素

export default {
    getXPath(elm){
        let allNodes = document.getElementsByTagName("*")
        for(var segs = []; elm && elm.nodeType == 1; elm = elm.parentNode){
            if(elm.hasAttribute("id")){
                let uniqueIdCount = 0
                for(var n=0;n < allNodes.length;n++){
                    if (allNodes[n].hasAttribute("id") && allNodes[n].id == elm.id) uniqueIdCount++;
                    if (uniqueIdCount > 1) break;
                }
                if(uniqueIdCount == 1){
                    segs.unshift("http://*[@id="" + elm.getAttribute("id") + ""]");
                    return segs.join("/");
                }else{
                    return false
                }
            }else{
                for(var i = 1, sib = elm.previousSibling; sib; sib = sib.previousSibling){
                    if (sib.localName == elm.localName)  i++;
                }
                if(i == 1){
                    if(elm.nextElementSibling){
                        if(elm.nextElementSibling.localName != elm.localName){
                            segs.unshift(elm.localName.toLowerCase())
                        }else{
                            segs.unshift(elm.localName.toLowerCase() + "[" + i + "]");
                        }
                    }else{
                        segs.unshift(elm.localName.toLowerCase())
                    }
                }else{
                    segs.unshift(elm.localName.toLowerCase() + "[" + i + "]");
                }
            }
        }
        return segs.length ? "/" + segs.join("/") : null
    },
    getElem(path){
        try{
            var evaluator = new XPathEvaluator();
            var result = evaluator.evaluate(path, document.documentElement, null,XPathResult.FIRST_ORDERED_NODE_TYPE, null);
            return  result.singleNodeValue || "";
        }catch(e){
            return ""
        }
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/82546.html

相關(guān)文章

  • Android 性能監(jiān)控系列一(原理篇)

    摘要:全稱應(yīng)用性能管理監(jiān)控后面我會(huì)通過(guò)一系列的文章來(lái)介紹的原理框架設(shè)計(jì)與實(shí)現(xiàn)等等。在應(yīng)用構(gòu)建期間,通過(guò)修改字節(jié)碼的方式來(lái)進(jìn)行字節(jié)碼插樁就是實(shí)現(xiàn)自動(dòng)化的方案之一。 showImg(https://segmentfault.com/img/bVbbRX6?w=1995&h=1273); 歡迎關(guān)注微信公眾號(hào):BaronTalk,獲取更多精彩好文! 一. 前言 性能問(wèn)題是導(dǎo)致 App 用戶流失的罪魁...

    yacheng 評(píng)論0 收藏0
  • 基于vue + nuxt 打造 o2o教育商城系統(tǒng)(觸屏版) 服務(wù)端渲染SSR

    摘要:反向代理無(wú)痕埋點(diǎn)前言本項(xiàng)目純屬個(gè)人練習(xí)項(xiàng)目,數(shù)據(jù)并非真實(shí),如有雷同,純屬巧合。 Node.js(v6.9.1) + express(4.X) + vue(2.0) + vuex + mysql(5.7.18) + (NUXT)SSR + nginx反向代理 + 無(wú)痕埋點(diǎn) 前言 https://github.com/github1586...*本項(xiàng)目純屬個(gè)人練習(xí)項(xiàng)目,數(shù)據(jù)并非真實(shí),如有雷...

    Betta 評(píng)論0 收藏0
  • 基于vue + nuxt 打造 o2o教育商城系統(tǒng)(觸屏版) 服務(wù)端渲染SSR

    摘要:反向代理無(wú)痕埋點(diǎn)前言本項(xiàng)目純屬個(gè)人練習(xí)項(xiàng)目,數(shù)據(jù)并非真實(shí),如有雷同,純屬巧合。 Node.js(v6.9.1) + express(4.X) + vue(2.0) + vuex + mysql(5.7.18) + (NUXT)SSR + nginx反向代理 + 無(wú)痕埋點(diǎn) 前言 https://github.com/github1586...*本項(xiàng)目純屬個(gè)人練習(xí)項(xiàng)目,數(shù)據(jù)并非真實(shí),如有雷...

    wangdai 評(píng)論0 收藏0
  • 如何通過(guò)Vue自定義指令實(shí)現(xiàn)前端埋點(diǎn)詳析

      獲取用戶的交互習(xí)慣及喜好,進(jìn)一步提升轉(zhuǎn)化率,可以在之前的埋點(diǎn)方案實(shí)現(xiàn)中,都是在具體的按鈕或者圖片被點(diǎn)擊或者被曝光時(shí)主動(dòng)通過(guò)事件去上報(bào)埋點(diǎn)。但這種方法適合在埋點(diǎn)比較少時(shí)還行的項(xiàng)目,遇見(jiàn)項(xiàng)目中需要大量埋點(diǎn)時(shí),添加的代碼就太多了,就會(huì)埋點(diǎn)邏輯與業(yè)務(wù)邏輯的高耦合。  由此需要換種方式。我先給大家普及下埋點(diǎn)上報(bào)方式都有哪些?  手動(dòng)埋點(diǎn)  可視化埋點(diǎn)  無(wú)痕埋點(diǎn)  手動(dòng)埋點(diǎn),顧名思義就是純手動(dòng)寫(xiě)代碼,調(diào)...

    3403771864 評(píng)論0 收藏0
  • JS實(shí)現(xiàn)監(jiān)控微信小程序

    摘要:博客地址使用模塊化工具打包自己開(kāi)發(fā)的庫(kù)文章中有提到,當(dāng)時(shí)需要寫(xiě)一個(gè),監(jiān)控小程序的后臺(tái)接口調(diào)用和頁(yè)面報(bào)錯(cuò),今天就來(lái)說(shuō)下實(shí)現(xiàn)原理吧原理之前也做過(guò)瀏覽器端的數(shù)據(jù)埋點(diǎn)上報(bào),其實(shí)原理大同小異通過(guò)劫持原始方法,獲取需要上報(bào)的數(shù)據(jù),最后再執(zhí)行原始方法,這 博客地址 《使用模塊化工具打包自己開(kāi)發(fā)的JS庫(kù)》文章中有提到,當(dāng)時(shí)需要寫(xiě)一個(gè)SDK,監(jiān)控小程序的后臺(tái)接口調(diào)用和頁(yè)面報(bào)錯(cuò),今天就來(lái)說(shuō)下實(shí)現(xiàn)原理吧! ...

    Cheriselalala 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<