find_element_by_xpath()的幾種方法

一:從根目錄/開始

有點像Linux的文件查看,/代表根目錄,一級一級的查找,直接子節點,相當於css_selector中的>號

/html/body/div/p 

 

二. 根據元素屬性選擇:

查找具體的元素,必須在前面輸入標準開頭//,表示從當前節點尋找所有的後代元素

//div/*     div下面的所有的元素

//div//p     先在整個文檔裏查找div,再在div裏查找p節點(只要在內部,不限定是否緊跟) ;等價於 css_selector裏的('div p')

//div/p      p是div的直接子節點; 等價於 css_selector裏的('div > p')

//*[@style]   查找所有包含style的所有元素,所有的屬性要加@;  等價於 css_selector裏的('*[style]')

//p[@spec='len']  必須要加引號;等價於 css_selector裏的("p[spec='len']")

//p[@id='kw']    xpath中對於id,class與其他元素一視同仁,沒有其他的方法

 

三. 選擇第幾個節點

//div/p[2]   選擇div下的第二個p節點 ;等價於css_selector裏的div>p:nth-of-type(2)  符合p類型的第二個節點

//div/*[2]    選擇div下第二個元素

//div/p[position()=2]   position()=2   指定第二個位置;  等價於上面的 //div/p[2] 

          position()>=2      位置大於等於2

          position()<2        位置小於2

          position()!=2    位置不等於2

//div/p[last()]    選擇div下的倒數第一個p節點; last()倒數第一個

//div/p[last()-1]    選擇div下的倒數第二個p節點;

//div/p[position()=last()]     倒數第一個

//div/p[position()=last()-1]     倒數第二個

//div/p[position()>=last()-2]     倒數第一個,第二個,第三個

 

四. 組合選擇

//p | //button   選擇所有的p和button,等價於css_selector裏的 p, button

//input[@id='kw' and @class='su']     選擇id=kw 並且 class=su的input元素

 

五. 兄弟節點的選擇

相鄰後面的兄弟節點的選擇:following-sibling::    兩個冒號

//div/following-sibling::p    選擇div裏相鄰的p節點

相鄰前面的兄弟節點的選擇:preceding-sibling::         此方法在css_selector中沒有

//div/preceding-sibling::p[2]   選擇div裏前面相鄰的第二個節點,不加[2]選擇的是前面的所有的p節點

 

六. 選擇父節點    

//p[@spec='len']/..    選擇p節點的上層節點       此方法在css_selector中沒有

//p[@spec='len']/../..   上層節點的上層節點

 

七. 在webelement對象裏面使用查找Xpath 查找時,必須使用.指明當前節點

food = driver.find_element_by_id('food')

eles = food.find_elements_by_xpath(".//p")    .指明當前節點

eles = food.find_elements_by_xpath("..")   查找當前節點的父節點

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章