一、xpath的使用场景:

  自动化测试中经常对元素进行操作时,如果存在id、name、content_desc时,可通过appium框架提供的方法find_element_by_id/name/tag_name来直接进行操作,经常会遇到以上属性都不存在的情况,因此这时我们就开始使用xpath的操作来进行使用,对常用的方法进行梳理,如下:

二、xpath的基本用法

  

三、示例介绍

1、要求达到的目的:

    打开短信---点击设置---通过xpath的方式,实现点击“设置”

2、实现的步骤:

    1)通过uiautomator Viewer解析出来的结构为:

            

       2)xpath的实现:

     第一种方法:self.device.find_element_by_xpath('//android.widget.ListView/android.widget.LinearLayout[4]').click()

     解析:(1)xpath中,下标从1开始,不从0开始,因此“设置”的下标为4

        (2)仔细的话可以注意到android.widget.ListView为整个弹框的class,详见下图,根据图中示例,可以推断出,设置:find_element_by_xpath('//android.widget.ListView/android.widget.LinearLayout[4]'),我的收藏:find_element_by_xpath('//android.widget.ListView/android.widget.LinearLayout[1]').

          

      第二种方法:self.device.find_element_by_xpath("//android.widget.TextView[@text = '设置']").click()

          解析:通过text来进行点击设置

      第三种方法:self.device.find_element_by_xpath("//android.widget.ListView/android.widget.LinearLayout[last()]").click()

          解析:根据上面的截图就可以看出,设置属于ListView中的最后一个,因此可以通过last直接点击,如果是点击倒数第二个,则使用[last()-1]即可

 xpath需要遍历整个元素树,生成一个xml数据,然后在做xpath查找,遍历和在xml中进行xpath都相当的耗时,因此在写自动化脚本时,尽量避免用xpath,后面遇到了其他的用法在来继续添加......

最新文章

  1. ERROR: Unable to globalize '/usr/local/NONE/etc/php-fpm.d/*.conf' 问题的解决
  2. sql 中convert和cast区别
  3. tcpdump捕捉样例
  4. 框架Hibernate笔记系列 基础Session
  5. python成长之路——第一天
  6. Java获取前天和后天的时间
  7. MapGIS转Shp文件的单位问题
  8. nodejs 与数据库的连接
  9. 【翻译】MVC Music Store 教程-概述(一)
  10. WebStorm 7.0 注册码
  11. Laravel 和 Spring Boot 两个框架比较创业篇(二:人工成本)
  12. RDD的概念与创建
  13. StackWalk64
  14. spring cloud 学习目录
  15. Python求最大可能
  16. javascript 数组函数
  17. Jmeter中Websocket协议支持包的使用
  18. 【sping揭秘】3、Spring容器中bean默认是保持一个实例
  19. [svc]通过ssh tunnel连接内网ECS和RDS
  20. Spring Boot 文档

热门文章

  1. Python自学编程开发路线图(文中有免费资源)
  2. 文本分类学习 (七)支持向量机SVM 的前奏 结构风险最小化和VC维度理论
  3. 多线程中操作UI
  4. python笔记:#002#第一个python程序
  5. 落入绝地求生的Python神仙,实现绝地求生无后座!
  6. 关于Spring的HibernateTemplate的findByExample方法使用时的一点注意。
  7. Python_os、os.path、os.shutil使用案例
  8. mysql workbench EER图,里面的实线以及虚线的关系
  9. mybatis自定义代码生成器(Generator)——自动生成model&dao代码
  10. PAT1029:Median