selenium---xpath軸定位


  前面介紹了元素定位通過xpath的方法,安靜沒有介紹完全,其實通過xpath定位還有一種基本上用不到的方法,這里安靜也介紹下,xpath定位之軸定位

軸定位

軸定位其實就是通過html中的一些節點的節點集進行定位的,通常需要用到這些

參考資料:https://www.runoob.com/xpath/xpath-axes.html

軸名稱 結果
ancestor 選取當前節點的所有先輩(父、祖父等)。
ancestor-or-self 選取當前節點的所有先輩(父、祖父等)以及當前節點本身。
attribute 選取當前節點的所有屬性。
child 選取當前節點的所有子元素。
descendant 選取當前節點的所有后代元素(子、孫等)。
descendant-or-self 選取當前節點的所有后代元素(子、孫等)以及當前節點本身。
following 選取文檔中當前節點的結束標簽之后的所有節點。
following-sibling 選取當前節點之后的所有兄弟節點
namespace 選取當前節點的所有命名空間節點。
parent 選取當前節點的父節點。
preceding 選取文檔中當前節點的開始標簽之前的所有節點。
preceding-sibling 選取當前節點之前的所有同級節點。
self 選取當前節點。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 使用方法:

軸名稱::標簽名

例子1:通過祖宗輩進行定位孫子輩

因為這里我們需要通過祖宗輩來定位,軸節點這里選擇 descendant   //*[@id="main"]/descendant::input[@id="zzk_q"] ,這里安靜通過ctrl+f來驗證下

通過這個我們查看到只有一個元素,說明我們的定位沒有問題,如果小伙伴們還不確認,我們可以通過代碼進行驗證

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.cnblogs.com/')
driver.find_element_by_xpath('//*[@id="main"]/descendant::input[@id="zzk_q"]').send_keys('測試-安靜')
time.sleep(5)
driver.quit()

例子2:通過節點定位之前節點內容

這里安靜還是通過定位找找看來定位

這里通過想要定位元素的兄弟來定位了該元素  //*[@class='search_btn']/preceding::input[@id="zzk_q"] 

同樣,我們可以通過代碼進行驗證,是否定位正確

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.cnblogs.com/')
driver.find_element_by_xpath('//*[@class="search_btn"]/preceding::input[@id="zzk_q"]').send_keys('測試-安靜')
time.sleep(5)
driver.quit()

 

這里安靜簡單的通過軸節點定位舉了幾個例子,具體的實踐操作需要小伙伴們私下自己多鍛煉,多寫,元素定位沒有什么方面的地方,只有寫的多了,見得多了,自然也就明白了。

 


免責聲明!

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



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