zoukankan      html  css  js  c++  java
  • 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实例应用:

       

  • 相关阅读:
    BeanPostProcessor后置处理器原理以及ApplicationListener原理
    SpringCloud之服务注册与发现Eureka+客户端Feign
    AJPFX关于TreeSet集合的介绍
    AJPFX:关于面向对象的封装
    AJPFX总结Java 类与对象的初始化
    AJPFX关于增强for的概述和使用(foreach)
    AJPFX总结泛型概念和使用
    AJPFX简述可变参数概述和使用
    AJPFX关于JAVA StringBuffer的用法总结
    AJPFX关于Collection 集合的表述
  • 原文地址:https://www.cnblogs.com/chushujin/p/12284602.html
Copyright © 2011-2022 走看看