selenium---xpath定位方法詳解


Xpath定位
 
驗證xpath寫的是否正確:
1、打開瀏覽器檢查頁面,Ctrl+F,把路徑輸入進去,如果可以定位到的位置只有一個,說明是對的
2、在需要定位的頁面,按F12后,切換至console列下,輸入表達式。語法 $x("path_selector")
 
最常用的歸納幾點:
    @     用在標簽的屬性前,選取屬性      //標簽[@屬性名=屬性值]
    ..    選取當前節點的父節點
    [x]    指第x個。  比如  //div/input[2]   指div下面第二個input
   *       指任意        比如 //span[@*="xxxx"] 指定位span中任意屬性等於xxx的;比如//*[@id="kw"] 指定位任意標簽屬性id='kw'
           用在開始表示絕對路徑,從根節點選取; 用在中間表示前一個節點的下一級
    //      用在開始表示從當前節點開始;用在中間表示所有子節點,不用考慮是否直接子節點
 
常用寫法:
屬性定位: //標簽[@屬性名=屬性值]
文本定位: //標簽[text()=精確內容]
contains()函數定位,如果屬性值或文本內容過長,可以選取其中一部分定位,  //標簽[contains(@屬性,屬性值)]     //標簽[contains(text(),部分內容)]
 
 

 

 

 
一、xpath基本定位法
  1. 使用id定位
               driver.find_element_by_xpath('//input[@id=""kw]')
 
       2.使用class定位
             driver.find_element_by_xpath('//input[@class="s_ip"]')
 
       3.當然,通過常用8種方式結合xpath均可以定位(name,tag_name,link_text,partial_link_text)
 
二、xpath相對路徑/絕對路徑定位
      1.相對路徑定位    
            以//開頭,表示從當前節點開始,如: //form//input[@name="phone"]  
 
      2.絕對路徑
            以/開頭,從根節點開始選取,比較繁瑣,一般不建議使用   如:/html/body/div/a
 
三、xpath文本、模糊、邏輯定位
      1、文本定位 
            使用text()元素的text內容  如: //button[text()="登錄"]
 
      2. 模糊定位
          使用contains()包含函數  如: //button[contains(text(),"登錄")]      //button[contains(@class,"btn")]
          使用starts-with     ends-with  如://button[starts-with(@class,"btn")]    //input[ends-with(@class,"-special")]
 
    3.邏輯運算符
         and  or    如://input[@name="phone" and @datatype="m"]
 
四, xpath軸定位
       軸運算
      ancestor:祖先節點  包括父
      parent: 父節點
      preceding-sibling  : 當前元素節點標簽之前的所有兄弟節點(同級)
      preceding: 當前元素節點標簽之前的所有節點
      following-sbling:當前元素節點標簽之后的所有兄弟節點 (同級)     如: //input/following::[1]  input的下一個兄弟元素
      following: 當前元素節點標簽之后的所有節點
  
   使用方法:  軸名稱::節點名稱    (前后的定位與之前一致,用/隔開即可)
    使用較多的場景:頁面顯示為一個表格樣式數據列
   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM