xpath定位大全


//查找所有的”B”

var xpath=”//B”;

//查找所有元素

xpath = “//*”;

// 選擇所有路徑依附於/A/B/的元素

xpath =”/A/B/*”;

//選擇所有的有3個祖先元素的B元素

xpath =”///*/B” ;

// 選擇所有父元素是DDD的BBB元素

xpath=”//C/D”;

// 選擇A/B/C的第一個E子元素

xpath=”/A/B/C/E[1]”;

//選擇A/B/C的最后一個E子元素

xpath=”/A/B/C/E[last()]” ;

//選擇有name屬性的B元素

xpath = “//B[@name]” ;

//選擇所有的name屬性

xpath=”//@name”;

//選擇有任意屬性的B元素

xpath=”//B[@*]”;

//選擇沒有屬性的B元素

xpath=”//B[not(@*)]”;

//選擇含有屬性id且其值為’e2’的E元素

xpath=”//E[@id=’e2’]”;

//選擇含有屬性name且其值(在用normalize-space函數去掉前后空格后)為’b’的B元素

xpath=”//B[normalize-space(@name)=’b’]”;

//選擇含有2個B子元素的元素

xpath=”//*[count(B)=2]”;

//選擇含有3個子元素的元素

xpath=”//[count()=3]”;

//選擇所有名稱為B的元素(這里等價於//B)

xpath=”//*[name()=’B’]”;

//選擇所有名稱以”W”起始的元素

xpath=”//*[starts-with(name(),’W’)]”;

//選擇所有名稱包含”W”的元素

xpath=”//*[contains(name(),’W’)]”;

//選擇名字長度為2(大於、小於)的元素;

xpath=”//*[string-length(name()) = 2]”;

xpath=”//*[string-length(name()) < 2]”;

xpath=”//*[string-length(name()) > 1]”;

//多個路徑可以用分隔符 | 合並在一起,可以合並的路徑數目沒有限制,選擇所有的WF和C元素

xpath=”//WF | //C”;

//等價於/A

xpath=”/child::A”;

//等價於//C/D

xpath=”//child::C/child::D”;

//選擇文檔根元素的所有后代.即所有的元素被選擇

xpath=”/descendant::*”;

//選擇/A/C的所有后代元素

xpath=”/A/C/descendant::*”;

//選擇D元素的所有父節點

xpath=”//D/parent::*”;

//選擇WF元素的祖先節點

xpath=”//WF/ancestor::*”;

//包含上下文節點之后的所有兄弟節點(此節點之后的所有兄弟節點)

xpath=”//WF/following-sibling::*”;

//包含上下文節點之前的所有兄弟節點(此節點之前的所有兄弟節點)

xpath=”//WF/preceding-sibling::*”;

//包含同一文檔中按文檔順序位於上下文節點 之后 的所有節點, 除了祖先節點,屬性節點和命名空間節點

xpath=”/A/B/following::*”;

xpath=”//B/following::*”;

//包含同一文檔中按文檔順序位於上下文節點之前的所有節點, 除了祖先節點,屬性節點和命名空間節點

xpath=”//WF/preceding::*”;

//包含上下文節點本身和該節點的后代節點;

xpath=”//C/descendant-or-self::*”;

//僅代表自身節點

xpath=”//A/self::*”;

//一起使用則包含所有節點

xpath=”//WF/ancestor::* | //Wf/descendant::* | //WF/following::* | //WF/preceding::* | //WF/self::*”;

//選擇當前節點的文字

xpath=”//E/child::text()”;

//選擇所有當前節點的子節點

xpath=”//V/child::node()”;

//選擇偶數位置的B元素

xpath=”//B[position() mod 2 = 0 ]”;

//選擇中間的E元素

/*

div運算符做浮點除法運算,

mod運算符做求余運算,

floor函數返回不大於參數的最大整數(趨近於正無窮),

ceiling返回不小於參數的最小整數(趨近於負無窮) */

xpath=”//E[ position() = floor(last() div 2 + 0.5) or position() = ceiling(last() div 2 + 0.5) ]”;

//可以忽略空白,尋找屬性name=’b’ or name=’ b ‘的元素

xpath=”//@name[‘b’]”;

//不忽略空白,完全匹配,尋找屬性name=’b’的元素

xpath=”//@name[.=’b’]”;

2、使用dom定位

//span[text()=’${stockName}’]/parent::/preceding-sibling:://div[@class=’num’]

xpath:

contains:.//a[contains(@class,’btnX’) and .//text()=’Sign in’]

starts-with:.//a[starts-with(@class,’btnSelectedBG’)]

使用相對位置定位當前元素的兄弟節點:

//span[contains(text(),’昨收’)]/following-sibling::*[position() = 1]

6、使用xpath匹配到多個元素時,可以使用一些關鍵字剔除掉某些不需要的元素

xpath=//input[ not(@id)][@type=”checkbox”]

這樣就剔除了那些包含id屬性的元素了

xpath=//span[ contains(.,’已選’)]

xpath=//iframe[ starts-with(@id, ‘compose’)]

xpath= //li[@id=’btn_forward’]//i[@class=’i_triangle_d’]

//span[text()=’買入’ and not(@class)]

//img[contains(@id,’ext-gen605’)]

//img[contains(@src,’/…../’) and index=1]

3、定位元素出現多個,但只有一個可見,其他隱藏,可以這樣定位:

$(“.button:visible”)[0]

$(“.code-name-line:visible”)[0].children[1]

4、找出文本為“買入”的元素

//button[text()=’退出’]

//h1[contains(.,’人民幣’)]

此外,cssSelector還有一些高級用法,如果熟練后可以更加方便地幫助我們定位元素,如我們可以利用^用於匹配一個前綴,$用於匹配一個后綴,*用於匹配任意字符。例如:

匹配一個有id屬性,並且id屬性是以”id_prefix_”開頭的超鏈接元素:a[id^=’id_prefix_’]

匹配一個有id屬性,並且id屬性是以”_id_sufix”結尾的超鏈接元素:a[id$=’_id_sufix’]

匹配一個有id屬性,並且id屬性中包含”id_pattern”字符的超鏈接元素:a[id*=’id_pattern’]

xpath指定子節點
---------------------
作者:DaxiaLeeSuper
來源:CSDN
原文:https://blog.csdn.net/DaxiaLeeSuper/article/details/79347838
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM