通过python调用adb命令实现用元素名称、id、class定位元素
来源:互联网 发布:淘宝签到领金币 编辑:程序博客网 时间:2024/06/06 02:17
在Android自动化测试过程中,使用monkeyrunner可以通过坐标点击某个元素,但缺点是受屏幕分辨率影响,需要随时更改坐标位置。最近有使用了下Appium这个工具,优点是可以通过元素名称、id、class等属性定位,但是需要搭建稍微有点复杂的环境,然后我就想能不能不依赖任何环境,使用纯Python实现通过这几个属性定位,只需要直接执行python脚本就ok?接下来开始着手实现
首先需要Android版本高于4.0,使用这个命令“adb shell uiautomator dump”命令,执行“adb shell uiautomator dump /data/local/tmp/uidump.xml”,然后将该xml文件pull到本地,从里面可以看到手机上当前页面的布局,在note节点下可以找到这些属性:text,resource-id,class,bounds,知道这些内容后就可以使用python对该xml文件解析获取到对应的属性,取出bounds的值,计算出对应元素区域的中心坐标,接着使用adb shell input tap 命令就可以点击该坐标,如果有相同的属性值,那就需要得到一个坐标点的列表,以应用“1号店“为例,在桌面上通过应用名称“1号店”,点击进入应用,然后点击“手机充值”,截图如下:
用python简单实现:
这是一个简单的思路,使用的前提是需要开启view server,否则无法获取到uidump.xml这个文件。另外程序运行的会有点慢,可以有优化的方法。
另外如果属性值相同,使用elements,返回的是含坐标元组的列表,如何使用,这里就不讲了。
该文转自:http://blog.csdn.net/gb112211/article/details/33730221
阅读全文
0 0
- 通过python调用adb命令实现用元素名称、id、class定位元素
- 通过python调用adb命令实现用元素名称、id、class定位元素
- 通过id和class删除html元素
- xpath如何通过class来定位元素
- Adb-For-Test 使用 adb 命令实现元素定位等功能,用来辅助 android 测试
- 在脚本中可以直接使用id名称调用元素
- 网页填表-------对于 无 元素ID和名称的元素 定位
- 通过ID获取元素
- 通过ID获取元素
- 通过class和id获取DOM元素的区别
- 通过class选取元素
- 根据class名称获取元素
- 通过ID定位,ID变化导致selenium无法定位到元素
- selenium定位动态id元素
- 根据ID,class 选择元素
- 11通过id获取元素
- 通过id获取元素坐标
- webdriver通过class获取元素
- java设计模式05_Builder模式
- 数据库处理海量数据时的一些优化查询速度方法
- jquery的datepicker()控件使用方法
- 学学JavaScript(ES6)对象、函数、字符串新语法
- 零基础如何系统地学习前端开发?
- 通过python调用adb命令实现用元素名称、id、class定位元素
- Ehcache配置文件的详细说明
- 访问外网的工具
- vimtutor教程(双语版)
- java设计模式07_适配器模式
- 13.删除字符串中出现次数最少的字符
- java 虚拟机--新生代与老年代GC
- 时序差分学习(Temporal-Difference Learning)
- java设计模式08_桥接模式