Xpath定位9大技巧
1 標籤類型選擇器
根據其標籤類型來選擇元素,//A是選擇A類型標籤所包含的所有元素,比如://div是選擇全部
2 標籤屬性選擇器
選擇帶有屬性的元素,//[@屬性=”屬性值”]選擇相關屬性的元素,比如://[class=”classvalue”]選擇的是所有包含class屬性值爲classvalue的元素。
3 子選擇器
選擇某元素的直系子元素,//A/B是選擇所有A元素的所有直系子元素B,//A/*是選擇A元素下的所有任意元素,比如://div/input是選擇所有
4 子選擇器結合屬性選擇器
//*[@屬性=”屬性值”]/A
5 類選擇器
根據元素包含(contains)的屬性來選擇元素,//[contains(@屬性, “屬性值”)]選擇包含指定屬性值的所有元素,比如://[contains(@class, “classvalue”)]選擇包含class屬性值爲classvalue的所有元素。
根據元素不包含(not)的屬性來選擇元素,//[not(@屬性, “屬性值”)]選擇不包含指定屬性值的所有元素,比如://[not(@class, “classvalue”)]選擇不包含class屬性值爲classvalue的所有元素。
6 索引選擇器
在指定索引處選擇相應的元素:(//A)[索引號],比如:(//div)[3]選擇第3個
選擇所有元素中的最後一個A元素:(//A)[last()],比如:(//div)[last()]選擇最後一個
選擇所有元素中的倒數第n個A元素:(//A)[last()-n],比如:(//div)[last()-n]選擇最後一個
選擇同層級下所有元素中的最後一個元素://A/[last()],比如://div/[last()]選擇
7 父選擇器
選擇當前層級元素的父級元素:…,比如://input[@class=”classvalue”]/…選擇該屬性的input元素的上一層級元素。
選擇當前層級元素的父級元素,比如://div[input[@class=”classvalue”]]選擇該屬性的input元素的上一層級元素。
8 邏輯或連接符
通過使用“|”邏輯“或”來選擇滿足條件的任意路徑表達式,比如//A | // B | //*[@屬性=”屬性值”]是選擇元素、元素以及滿足指定屬性的元素。
9 軸定位
選擇當前元素後面(following-sibling)所指定的同層級元素,比如://A/following-sibling::B選擇的是A元素之後同層級的B元素
選擇當前元素前面(preceding-sibling)所指定的同層級元素,比如://B/preceding-sibling::A選擇的是B元素之前同層級的A元素