python点击屏幕坐标_Appium+python自动化(二十二)- 三个臭皮匠顶个诸葛亮-控件坐标获取(超详解)...
简介
有些小伙伴或者是童鞋可能会好奇会问上一篇中的那个monkey脚本里的坐标点是如何获取的,不是自己随便蒙的猜的,或者是自己用目光或者是尺子量出来的吧,答案当然是:NO。获取控件坐标点的方式这里宏哥给小伙伴们分享和讲解三种方法(也就是三个臭皮匠),宏哥个人喜欢第二种,也推荐小伙伴们和童鞋们使用第二种,当然了萝卜青菜各有所爱,这里不做强制要求。小平同志不是说过:不管白猫还是黑猫抓住耗子就是好猫。适合自己才是最好的,小伙伴们可以根据自己的喜好自行选择。
获取控件的坐标点方法
第一种方法(MonkeyRecorder获取坐标)
下面就MonkeyRecorder获取坐标的方式,进行演示。MonkeyRecorder是一个比较好用的获取坐标的工具,它是用来获取真机或模拟器上坐标的工具,当我们点击真机或模拟器上的空间时,就能显示真机或模拟器上的点击点的坐标。
(1)MonkeyRecorder的启动
1.首先安卓手机连接上电脑,并保证以下两个条件成立:
a.终端USB调成开发者模式
b.电脑安装手机驱动
2.手机连接成功后,打开cmd窗口,输入adb devices查看已连接真机或模拟器设备的名称,我们这里仍以夜神模拟器为代表。如图:
3.在cmd窗口,输入monkeyrunner后,启动Monkeyrunner。做以下操作:导入MonkeyRecorder包、连接模拟器设备、以MonkeyRecorder方式启动模拟器,并依次输入
如下命令:
1 fromcom.android.monkeyrunner import MonkeyRunner,MonkeyDevice2
3 from com.android.monkeyrunner.recorder import MonkeyRecorder asrecorder4
5 device=MonkeyRunner.waitForConnection()6
7 recorder.start(device)
4.到此,MonkeyRecorder正式启动。截图如下。
(2)MonkeyRecorder的使用
1.我们这里只是使用MonkeyRecorder来记录坐标,获取坐标的方式很简单。比如qq的登录界面,点击“登录”按钮,右侧就会显示该按钮的坐标;同样,点击账号输入框或密码输入框,右侧同样会显示坐标。这个坐标就是我们需要获得的坐标。
2.同时,MonkeyRecorder中的界面是同模拟器页面保持一致的,在MonkeyRecorder中触发任一操作,模拟器上会有相应的触发。如果两者没有保持一致,则点击MonkeyRecorder右上角的Refresh Display即可刷新页面。
第二种方法(Uiautomatorviewer)
网上很多推荐获取坐标点的方式,是使用 android-sdk/tools 目录下,提供的 uiautomatorviewer 工具来获取。但是这种方式非常的繁琐,而实际上,我们又不需要如此精确的坐标点,毕竟控件那么大,只要点击的坐标落在控件的位置上,即可。
Uiautomatorviewer是Android sdk自带的工具,位置在sdk/tools下。
工具打开方法:
1.sdk/tools下,找到uiautomatorviewer,双击打开
2.在cmd命令行,直接输入uiautomatorviewer,打开该工具
打开该工具后,我们就可以开始使用了。
运行环境:Windows
使用方法:
1.连接模拟器或真机(我们这里使用模拟器)
2.打开模拟器中指定的app,在uiautomatorviewer中截图指定页面
3.截图成功后,页面显示如下:
需要注意的是,你的手机设备或模拟器的api要在16以上,也就是android版本得是4.1以上,因为这个工具是google在4.1以后推出来的,只适用于4.1以后的版本
4.结果分析
从上图中,可以获取到对应控件的ID及控件左上角、右下角的坐标。
1)对于控件坐标而言,这里很简单,我们一般取中点坐标,即:
中点坐标=((左上角横坐标+右下角横坐标)/2,(左上角纵坐标+右下角纵坐标)/2)
如,上图中,中点坐标即((30+1009)/2,(268+314)/2)=(519.5,291)
注:坐标一般取整。
由此,我们可以得到所需控件的坐标,在脚本中,直接touch该点坐标即可。
2)对于控件ID而言,即上图中的红色框中部分,同样在脚本中,直接touch该ID即可。
另外,利用uiautomatorviewer还可以获取父级与子级控件之间的关系,获取到的关系同HierarchyViewer保持一致。
uiautomatorviewer就介绍到这里。
第三种方法(Pointer location获取坐标)
那么我推荐另外一种更简单的方式,来获取当前你看见的,在待测试设备上的控件的坐标点的定位方式。那就是利用 Android 设备的开发者选项。
这里以夜神模拟器为例:
1.点击设置
2.点击开发者选项
3.在指针位置 ,将这个属性开启之后,当手指在屏幕上滑动的时候,就可以在顶部看到当前触摸点的 X、Y 轴的坐标,这就是我们需要的。
注意:开发者选项不是默认可见的,你需要自行开启开发者模式,之后再进行此操作。(这不是可以上网自已查一下,如果是夜神模拟器,可以参考宏哥的小结部分开启开发者选项)
小结
(1)安卓系统开启开发者模式方法很多,我们模拟器是6.3.0.0版本这里只讲适合夜神模拟器的方法,
接下来进入图文教程:
1.点击设置
2.点击关于平板电脑
3.点击7下版本号(手残请点击20下),点击箭头指向处的版本号(最底下的版本号),而不是上面的Android版本号
4.返回设置菜单
这里补充一点,如果感觉开发者这个选项碍眼,可以选择关闭,关闭方法:
设置–应用–全部–找到设置软件,点击进入–清除数据
这样开发者模式又隐藏了~~
教程到此结束O(∩_∩)O~~
python点击屏幕坐标_Appium+python自动化(二十二)- 三个臭皮匠顶个诸葛亮-控件坐标获取(超详解)...相关推荐
- python绘制散点图的函数_Python用PyQt5绘制多彩随机散点图,基本控件之QPainter使用详解...
前面内容,我们详细介绍了PyQt5中弹出式对话框. 回顾下精彩内容 Python用PyQt5制作颜色对话框,PyQt图形界面编程之QColorDialog Qt图形界面编程之QFileDialog类, ...
- wxss 点击样式_微信小程序点击控件修改样式实例详解
微信小程序点击控件修改样式实例详解 现在要在微信小程序中实现点击控件修改样式,如下: 微信小程序中不支持直接操作dom,要实现这种效果,我们需要通过设置data,然后利用数据和界面的双向绑定来实现它. ...
- TensorFlow学习笔记(二十四)自制TFRecord数据集 读取、显示及代码详解
在跑通了官网的mnist和cifar10数据之后,笔者尝试着制作自己的数据集,并保存,读入,显示. TensorFlow可以支持cifar10的数据格式, 也提供了标准的TFRecord 格式,而关于 ...
- C#操作GridView控件绑定数据实例详解(二)
上文实现的GridView控件: (一)翻页功能 翻页内容,主要实现的是该控件下面,上下翻页,跳转到指定页面. 翻页功能要注意前台页面下面这段代码中的相关命令: <PagerTemplate & ...
- python接口自动化(二十九)--html测试报告通过邮件发出去——上(详解)
简介 前边几篇,已经教小伙伴们掌握了如何生成HTML的测试报告,那么生成测试报告,我们也不能放在那里不管了,这样即使你报告在漂亮,领导也看不到.因此如果想向领导汇报工作,不仅需要提供更直观的测试报告. ...
- python +appium实现原理_Appium+python自动化(四十)-Appium自动化测试框架综合实践 - 代码实现(超详解)...
#coding=utf-8#1.先设置编码,utf-8可支持中英文,如上,通常放在第一行 #2.注释:包括记录建立时间,建立人,项目名称. '''Created on 2019-11-18 @auth ...
- Appium+python自动化(六)- 连接模拟器并启动淘宝APP(超详解)
简介 上一篇讲解完模拟器的安装.配置好以后,就好比我们手机已经买好,并且系统已经做好了,就差我们用数据线和电脑连接开始实战了,这篇宏哥就带着小伙伴们和童鞋们趁热打铁,讲解和分享一下如何连接模拟器(电脑 ...
- Appium+python自动化(六)- 连接模拟器并启动淘宝APP(超详解)
目录 简介 一.appium+pycharm+连接夜神模拟器并启动淘宝APP(推荐) 二.appium+pycharm+连接AVD模拟器(不推荐) 三.小结(亢龙有悔) 简介 上一篇讲解完模拟器的安装 ...
- python控制手机模拟器_Appium+python自动化之连接模拟器并启动淘宝APP(超详解)...
简介 上一篇讲解完模拟器的安装.配置好以后,就好比我们手机已经买好,并且系统已经做好了,就差我们用数据线和电脑连接开始实战了,这篇宏哥就带着小伙伴们和童鞋们趁热打铁,讲解和分享一下如何连接模拟器(电脑 ...
最新文章
- 基于JavaWeb实现ATM机系统
- 自学python要多久才能学会-怎么自学python,大概要多久?
- JavaScript字符串的单引号和双引号问题
- oracle 分布键,DWS使用技巧:根据ORACLE主键和唯一健批量修改DWS分布列字段的方法...
- md5加密 java原理_md5 32位 加密原理 Java实现md5加密
- 走出囚徒困境的方法_囚徒困境的一种计算方法
- jsp测试mysql_Jsp登陆与MySQL对接验证
- 免授权版傻瓜式建站系统
- 链家大数据多维分析引擎实践
- 使用Xcode7的Instruments检测解决iOS内存泄露
- 火狐浏览器不弹出窗口_Firefox选项卡的Vista样式弹出窗口预览
- 互联网产品经理的工作职责
- 回归分析中自变量取舍、检验及多重共线性处理(VIF)
- ncverilog脚本_NcVerilog_工作学习记录.pdf
- 你真以为贪吃蛇是个简单的游戏?
- Mac-工具-IntelliJ IDEA升级2022.1问题
- localtime 和 localtime_r
- 什么叫句柄(Handle)?
- 实验3-11 计算油费 (15 分)
- 【EtherCAT】基础概念
热门文章
- mysql免安装详细配置
- Android三方登陆之QQ,微信,微博登录及注意事项
- Blender基础操作:面操作细分、整体切分、挤出、内插、尖分、融并、切割、面的法向、填充等
- 【NXOpen C#】获取平面对象的法向量
- HandBrake for Mac 1.4.2多功能视频编码器
- 程序员的七种武器视频整理下载
- 【强化学习笔记】策略梯度(Policy Gradient)
- python123温度转换答案_Python温度转换基本语法元素分析
- python学习-温度转换
- jsp汽车销售管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目