xpath定位大全


寫在之前,每次自己通過xpath定位的時候,在網上找的不是很全,所以想自己寫一個相對比較全的,方便查閱;如果寫的不好或者不足的,請指正,謝謝!

 

xpath定位分為絕對路徑和相對路徑

一:絕對路徑

絕對路徑是指目錄下的絕對位置,直接到達目標位置,通常是從盤符開始的路徑,以百度首頁為例,查詢輸入框的定位,xpath=/html/body/div/div/div/div/div/form/span/input或者xpath=/html/body/div[2]/div[2]/div[5]/div/div/form/span/input,根據該位置在HTML底下的層級關系,一層一層找下來,如果遇到div等重復較多,可以數該標簽的順序,以便提高定位的精度

 

二:相對路徑

相對路徑就是指由這個文件所在的路徑引起的跟其它文件(或文件夾)的路徑關系,如xpath=//div[@class='main-logo'],相比絕對路徑,相對路徑更容易定位到對應的位置且寫法簡單,也不用擔心元素的位置變化而調整定位;

相對路徑定位方式有哪一些:

A.直接定位標簽

//input     #//標識定位到某一個標簽,//*則代表所有標簽,//input則定位所有input標簽

 

B.標簽+屬性匹配

//input[@id='kw']  或者//input[@type='text']  #由一個標簽+某一個屬性的組合 ,其中@代表匹配屬性名稱,相當於匹配所有的input標簽並匹配屬性id=kw的元素

 

C.標簽和多個屬性

//input[@id='kw' and @type='text']    #由一個標簽+多個屬性的組合,相當於匹配了所有的input標簽並匹配屬性id=kw且屬性type=text的元素

//input[@id='kw' or @type='text']      #由一個標簽+多個屬性的組合,相當於匹配了所有的input標簽,並匹配屬性id=kw或者屬性type=text的元素 

 

D.父子定位

//form[@id="form"]/input   #相當於先定位到了父節點,再找到對應的子節點,常用語當前元素不易定位而父節點較易定位的情況

 

E.contains

//input[contains(@id,'w')]  #相當於匹配了所有的input標簽且id屬性包含字符串"w"的元素 (模糊定位)

//a[contains(text(),'新聞')]  #相當於匹配了所有的input標簽且文本包含"新聞"  (模糊定位)

 

F.start-with和ends-with

//input[starts-with(@id,'k')]  #相當於匹配了所有的input標簽且屬性id以字母k開頭的元素 (模糊定位)

//input[ends-with(@id,'w')]  #相當於匹配了所有的input標簽且屬性id以字母w結尾的元素 (模糊定位)

 

G.文本定位

//a[text()='新聞']   #精准定位到本文屬性,contains則是模糊定位

 

H.關系定位方式(通過子節點找父節點、爺節點;兄弟節點或者堂兄弟等等)

1.子節點找父節點

//input[@id="kw"]/..         #相當於我們精確定位到了查詢輸入框,然后找他的父節點,往回走一層(根據層級關系)

//input[@id="kw"]/parent::span

 

2.兄弟節點

//input[@id="kw"]/../span   #相當於找到了父節點再往下找子節點(兄弟節點)

//input[@id="kw"]/following-sibling::a   #往下找兄弟節點,也可以寫//input[@id="kw"]/following-sibling::a[1],定位到后面的第幾個a標簽

//input[@id="kw"]/preceding-sibling::span  #往上找兄弟節點,也可以寫//input[@id="kw"]/preceding-sibling::span[1],定位到前面的第幾個span標簽

 

同理可以找到相關的爺爺節點,堂兄弟節點等等

 


免責聲明!

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



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