天天看點

xpath常用執行個體

注意1:查詢的節點指向,都是xpath的最後一部分

1、根據屬性

By.xpath("//a[@href]") //擷取所有的包含href屬性的節點,可以一次性擷取所有連結
           

2、父節點  “..”  ; 兄弟節點 “ following-sibling::span[1] ” 計數從1開始

已知節點的父節點的第二個div兄弟節點

By.xpath("//span[text()=\"測試用例\"]/../following-sibling::div[2]")
           

3、根據文本查詢

  • 直接指定text     //span[text()="測試用例"]
  • 包含一部分文本   //span[contains(text(),"用例")]
  • 對象中有不是文本的部分,先将所有内容轉換成string,再包含部分  //span[contains(string(),"用例")]

4、比對值對象,不止是text,還有屬性的值也可以

  • //div[starts-with(@class,'test')]     查找class屬性中開始位置包含'test'關鍵字的div元素
  • //div[contains(@class,'test')]         查找class屬性中包含test關鍵字的div元素

5、關鍵詞::節點名稱[下标]

https://www.cnblogs.com/VseYoung/p/8686383.html

XPath軸(XPath Axes)可定義某個相對于目前節點的節點集: 

1、child 選取目前節點的所有子元素      例: //span[text()="用例"]/child::span  

2、parent 選取目前節點的父節點,可以直接用..代替     例://span[text()="用例"]/parent::span 

3、descendant 選取目前節點的所有後代元素(子、孫等) 

4、ancestor 選取目前節點的所有先輩(父、祖父等) 

5、descendant-or-self 選取目前節點的所有後代元素(子、孫等)以及目前節點本身 

6、ancestor-or-self 選取目前節點的所有先輩(父、祖父等)以及目前節點本身 

7、preceding-sibling 選取目前節點之前的所有同級節點 

8、following-sibling 選取目前節點之後的所有同級節點 

9、preceding 選取文檔中目前節點的開始标簽之前的所有節點 

10、following 選取文檔中目前節點的結束标簽之後的所有節點 

11、self 選取目前節點 

12、attribute 選取目前節點的所有屬性 

13、namespace 選取目前節點的所有命名空間節點 

繼續閱讀