appium--xpath定位元素用法
一、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,后面遇到了其他的用法在来继续添加......
最新文章
- ERROR: Unable to globalize '/usr/local/NONE/etc/php-fpm.d/*.conf' 问题的解决
- sql 中convert和cast区别
- tcpdump捕捉样例
- 框架Hibernate笔记系列 基础Session
- python成长之路——第一天
- Java获取前天和后天的时间
- MapGIS转Shp文件的单位问题
- nodejs 与数据库的连接
- 【翻译】MVC Music Store 教程-概述(一)
- WebStorm 7.0 注册码
- Laravel 和 Spring Boot 两个框架比较创业篇(二:人工成本)
- RDD的概念与创建
- StackWalk64
- spring cloud 学习目录
- Python求最大可能
- javascript 数组函数
- Jmeter中Websocket协议支持包的使用
- 【sping揭秘】3、Spring容器中bean默认是保持一个实例
- [svc]通过ssh tunnel连接内网ECS和RDS
- Spring Boot 文档
热门文章
- Python自学编程开发路线图(文中有免费资源)
- 文本分类学习 (七)支持向量机SVM 的前奏 结构风险最小化和VC维度理论
- 多线程中操作UI
- python笔记:#002#第一个python程序
- 落入绝地求生的Python神仙,实现绝地求生无后座!
- 关于Spring的HibernateTemplate的findByExample方法使用时的一点注意。
- Python_os、os.path、os.shutil使用案例
- mysql workbench EER图,里面的实线以及虚线的关系
- mybatis自定义代码生成器(Generator)——自动生成model&;dao代码
- PAT1029:Median