Appium-Python3--UI自動化-[-6-]-Xpath定位元素(/child:: ,/parent::,/preceding-sibling::,/following::)


記錄一下selenium,appium中xpath根據父子、兄弟、相鄰節點定位的方法:

一、定位方式簡介:

1.Xpath軸所有的定位方式:

 2.常用的定位方式匯總:/child::  (由父節點定位子節點),/parent::(由子節點定位父節點),/preceding-sibling::(由弟弟節點定位哥哥節點),/following::(由哥哥節點定位弟弟節點

 

二、定位方式詳細實例介紹:

1.由父節點定位子節點/child::  (由父節點定位子節點)

<html>
<body>
<div id="祖父節點">
    <!--父節點定位子節點-->
    <div id="父節點">
        <div>子節點</div>
    </div>
</div>
</body>
</html>

各種定位方式:

#問題:根據父節點,找出子節點
#1.串聯查找
driver.find_element_by_id('父節點).find_element_by_tag_name('div').text

#2.xpath父子關系尋找
driver.find_element_by_xpath("//div[@id='父節點']/div").text

#3.xpath軸 child
driver.find_element_by_xpath("//div[@id='父節點']/child::div").text

appium實例應用:

 

 

2.由子節點定位父節點 /parent::(由子節點定位父節點)

#問題:通過子節點定位父節點內容
<
html> <body> <div id="祖父節點"> <!--子節點定位父節點--> <div> <div>父節點 <div> <div id="子節點"></div> </div> </div> </div> </div> </body> </html>

各種定位方式:

# 1.xpath定位: `.`代表當前節點; '..'代表父節點
driver.find_element_by_xpath("//div[@id='子節點']/../..").text
 
# 2.xpath軸 parent
driver.find_element_by_xpath("//div[@id='子節點']/parent::*/parent::div").text

appium實例應用:

 

 

 

3.由弟弟節點定位哥哥節點:/preceding-sibling::(由弟弟節點定位哥哥節點)

 

#問題:聽過弟弟節點定位二哥節點
<
html> <body> <div> <!--下面兩個節點用於兄弟節點定位--> <div>大哥節點</div> <div id="二哥節點"></div> <div>弟弟節點</div> </div> </body> </html>

 

定位方式:

 

 

# 1.xpath,通過父節點獲取其大哥節點
print driver.find_element_by_xpath("//div[@id='二哥節點']/../div[1]").text
 
# 2.xpath軸 preceding-sibling
print driver.find_element_by_xpath("//div[@id='二哥節點']/preceding-sibling::div[1]").text

 

4.由哥哥節點定位弟弟節點:/following::(由哥哥節點定位弟弟節點)

#問題:定位弟弟節點
<html>
<body>
<div>
    <!--下面兩個節點用於兄弟節點定位-->
    <div>大哥節點</div>
    <div id="二哥節點"></div>
    <div>弟弟節點</div>
</div>
</body>
</html>

 

定位方式:

# 1.xpath,通過父節點獲取其弟弟節點
driver.find_element_by_xpath("//div[@id='二哥節點']/../div[3]").text
 
# 2.Xpath軸 following-sibling
driver.find_element_by_xpath("//div[@id='二哥節點]/following-sibling::div[1]").text
 
# 3.Xpath軸 following
driver.find_element_by_xpath("//div[@id='二哥節點']/following::*").text

appium實例應用:

 

 

 

 

 

   

 


免責聲明!

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



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