Selenium學習筆記目錄
xpath:樹型結構
1. 基本概念
使用方法:
find_element_by_xpath("...")
根節(jié)點:
/
-
子節(jié)點:
/html/body/...
- 直接子節(jié)點
/body
- 所有子節(jié)點(包括直接子節(jié)點和非直接子節(jié)點)
//body
- 直接子節(jié)點
當前節(jié)點用“.”表示
./body/...
當前節(jié)點的上一層節(jié)點用“..”表示
../body/...
從根節(jié)點開始查找
/a/b/c/d
不從根節(jié)點開始查找(查找所有節(jié)點)
//c
//b/d
-
通配符用
*
表示东臀,*
可以是任何一種類型//b//* 查找節(jié)點b下的所有元素
- xpath與css方法對比
xpath css //div/*
div > *
- xpath與css方法對比
-
根據(jù)屬性查找
- 所有屬性鹤树,包括id和class
- 示例01:查找屬性含style的所有元素
//*[@style]
- 示例02:查找p節(jié)點下屬性spec=len2的元素
//p[@spec='len2']
-
xpath與css方法對比
xpth屬性的值必須加引號,css如果沒有空格可以不加引號
xpath css //*[@style] *[style] //p[@spec='len2'] p[spec=len2]
2. 舉例應用
根據(jù)id選擇
//*[@id='food']
-
選擇屬于其父元素的第二個p
- xpath與css方法對比
xpath css //p[2] nth-of-type(2)
- xpath與css方法對比
-
選擇屬于其父元素的倒數(shù)第幾個元素
- 最后一個p類型的子元素
//p[last()]
- 倒數(shù)第二個p類型的子元素
//p[last(-1)]
- 所有元素的倒數(shù)第二個
//*[last()]
- 最后一個p類型的子元素
-
根據(jù)位置選擇
position表示位置
所有元素中的前兩個元素
//*[position()<=2]
除了第一個元素外的其他所有元素
//*[position()>1]
所有元素中的最后三個元素
//*[position()>last()-3]
-
xpath與css方法對比
- xpath:選擇所有的p和所有的button(先選擇所有的p再選擇button)
//p | //button
- css:選擇所有的p和所有的button(按結構順序選擇)
p,button
- xpath:選擇所有的p和所有的button(先選擇所有的p再選擇button)
-
當前節(jié)點下的所有直接子節(jié)點
- css:food下面所有的直接子節(jié)點中的div
#food ~ div
- xpath:
//*[@id='food']/following-sibling::div
- id為food的節(jié)點的子節(jié)點的第一個節(jié)點
//*[@id='food']/following-sibling::*[1]
- id是food的上一個節(jié)點的div節(jié)點
//*[@id='food']/preceding-sibling::div
- id為food的父節(jié)點(上層節(jié)點)
//*[@id='food']/..
- css:food下面所有的直接子節(jié)點中的div
-
當前目錄與子目錄
- 從根目錄下開始查找所有的p:
'//p'
- 從當前目錄下開始查找所有的p:
'.//p'
- 從當前節(jié)點的父節(jié)點開始查找所有的p:
'..//p'
- 從當前目錄下開始查找直接子節(jié)點的p:
'./p'
- 從根目錄下開始查找所有的p:
3. 在瀏覽器中確認查找的元素是否正確
- 瀏覽器按F2進入開發(fā)者模式,點擊console
- xpath與css方法對比
方法 路徑前的符號 示例 xpath $x $x("http://span")
css $$ $$('span')
- xpath與css方法對比
- 瀏覽器按F2進入開發(fā)者模式挪拟,點擊elements,按
ctrl+F
進入搜索模式宾娜,輸入xpath或css參數(shù)路徑
4. 瀏覽器端根據(jù)html查看xpath
- 選中某個路徑锉走,點擊鼠標右鍵,依次選擇
copy-->copy xpath
即可復制該元素的xpath