selenium元素定位之XPath

一、基本定位方法

  1. 絕對路徑:以 “/”  開頭,從頁面根節點開始解析,/代表選取直接子節點,例如:/html/body/div[1]/div[1]/div/form/table/tbody/tr[1]/th

          

  2. 相對路徑  以”//” 開頭,可以從頁面任何元素節點開始解析,//代表選擇所有子孫節點,例如://*[@id=”name”]  

    

  3. 使用索引號定位:查找第二個tr標籤,例如://tr[2]

    

 

  4:使用頁面屬性定位,例如://td[@class=”nobr”],也可以將標籤td替換為*,表示任意標籤

    格式://標籤名[@屬性名=’屬性值’]

    

   5. 文本定位,使用text()函數,例如://th[text()=’項目名稱’]

    格式://標籤名[text()=’文本值’]

    

          注意點:當text文本前後存在空格時,可藉助contains關鍵字來匹配://a[contains(text(),’Login’)]

    

  6. 使用contains關鍵字模糊定位,表示包含XX屬性,例如://*[contains(@type,”word”)](*表示任意標籤)

    

  7. 使用starts-with關鍵字模糊定位,表示屬性以XX開始,例如://*[starts-with(@type,”pass”)]。同理可使用ends-with關鍵字模糊定位(ends-with是xpath2.0的語法,有些瀏覽器只支援1.0的語法)

    

  小結:標籤及其含義

  

二、軸定位法

  1. 軸名稱://www.runoob.com/xpath/xpath-axes.html

      

   2. 使用parent定位當前節點父節點,例如://th[text()=’項目名稱’]/parent::tr

    

  3. 使用follow定位當前節點之後的節點,例如://a[text()=’ 服務端’]/parent::li/following::li//a[text()=’ 移動端’]