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实例应用:

   

原文地址:https://www.cnblogs.com/chushujin/p/12284602.html