Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件

系统 1582 0

简介

  有些小伙伴或者是童鞋可能会好奇会问上一篇中的那个monkey脚本里的坐标点是如何获取的,不是自己随便蒙的猜的,或者是自己用目光或者是尺子量出来的吧,答案当然是:NO。获取控件坐标点的方式这里宏哥给小伙伴们分享和讲解三种方法(也就是三个臭皮匠),宏哥个人喜欢第二种,也推荐小伙伴们和童鞋们使用第二种,当然了萝卜青菜各有所爱,这里不做强制要求。小平同志不是说过:不管白猫还是黑猫抓住耗子就是好猫。适合自己才是最好的,小伙伴们可以根据自己的喜好自行选择。

获取控件的坐标点方法

第一种方法(MonkeyRecorder获取坐标)

    下面就MonkeyRecorder获取坐标的方式,进行演示。MonkeyRecorder是一个比较好用的获取坐标的工具,它是用来获取真机或模拟器上坐标的工具,当我们点击真机或模拟器上的空间时,就能显示真机或模拟器上的点击点的坐标。

(1)MonkeyRecorder的启动

1.首先安卓手机连接上电脑,并保证以下两个条件成立:

a.终端USB调成开发者模式

b.电脑安装手机驱动

2.手机连接成功后,打开cmd窗口,输入adb devices查看已连接真机或模拟器设备的名称,我们这里仍以夜神模拟器为代表。如图:

Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第1张图片

 

3.在cmd窗口,输入monkeyrunner后,启动Monkeyrunner。做以下操作:导入MonkeyRecorder包、连接模拟器设备、以MonkeyRecorder方式启动模拟器,并依次输入

如下命令:

            
              1
            
            
              from
            
            
               com.android.monkeyrunner import MonkeyRunner,MonkeyDevice

            
            
              2
            
            
              3
            
            
              from
            
             com.android.monkeyrunner.recorder import MonkeyRecorder 
            
              as
            
            
               recorder

            
            
              4
            
            
              5
            
             device=
            
              MonkeyRunner.waitForConnection()

            
            
              6
            
            
              7
            
             recorder.start(device)
          

  Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第2张图片

 

4.到此,MonkeyRecorder正式启动。截图如下。

Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第3张图片

 

(2)MonkeyRecorder的使用

1.我们这里只是使用MonkeyRecorder来记录坐标,获取坐标的方式很简单。比如qq的登录界面,点击“登录”按钮,右侧就会显示该按钮的坐标;同样,点击账号输入框或密码输入框,右侧同样会显示坐标。这个坐标就是我们需要获得的坐标。

Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第4张图片

 

2.同时, MonkeyRecorder中的界面是同模拟器页面保持一致的,在 MonkeyRecorder中触发任一操作,模拟器上会有相应的触发。如果两者没有保持一致,则点击 MonkeyRecorder右上角的 Refresh Display即可刷新页面。

Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第5张图片

 

第二种方法(Uiautomatorviewer)

  网上很多推荐获取坐标点的方式,是使用 android-sdk/tools 目录下,提供的 uiautomatorviewer 工具来获取。但是这种方式非常的繁琐,而实际上,我们又不需要如此精确的坐标点,毕竟控件那么大,只要点击的坐标落在控件的位置上,即可。

Uiautomatorviewer是Android sdk自带的工具,位置在sdk/tools下。

工具打开方法:

1.sdk/tools下,找到uiautomatorviewer,双击打开

2.在cmd命令行,直接输入uiautomatorviewer,打开该工具

Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第6张图片

打开该工具后,我们就可以开始使用了。

运行环境:Windows

使用方法:

1.连接模拟器或真机(我们这里使用模拟器)

Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第7张图片

2.打开模拟器中指定的app,在uiautomatorviewer中截图指定页面

Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第8张图片

3.截图成功后,页面显示如下:

Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第9张图片

需要注意的是,你的手机设备或模拟器的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.点击设置

Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第10张图片

 

2.点击开发者选项

Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第11张图片

 

3.在指针位置 ,将这个属性开启之后,当手指在屏幕上滑动的时候,就可以在顶部看到当前触摸点的 X、Y 轴的坐标,这就是我们需要的。

Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第12张图片

 

注意:开发者选项不是默认可见的,你需要自行开启开发者模式,之后再进行此操作。(这不是可以上网自已查一下,如果是夜神模拟器,可以参考宏哥的小结部分开启开发者选项)

小结

(1)安卓系统开启开发者模式方法很多,我们模拟器是6.3.0.0版本这里只讲适合夜神模拟器的方法,
  接下来进入图文教程:

  1.点击设置
Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第13张图片  

  2.点击关于平板电脑
Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第14张图片  

  3.点击7下版本号(手残请点击20下),点击箭头指向处的版本号(最底下的版本号),而不是上面的Android版本号
Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第15张图片  

  4.返回设置菜单
Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第16张图片  


Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第17张图片  

Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第18张图片  

  这里补充一点,如果感觉开发者这个选项碍眼,可以选择关闭,关闭方法:

  设置--应用--全部--找到设置软件,点击进入--清除数据
  这样开发者模式又隐藏了~~
Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第19张图片  

Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第20张图片

   教程到此结束O(∩_∩)O~~

2、好了,今天关于控件坐标点获取就到这里了!哈哈!最后祝大家都能熟练掌握!!!

您的肯定就是我进步的动力。 如果你感觉还不错,就请鼓励一下吧!记得点波  推荐  哦!!!(点击右边的小球即可)
Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第21张图片

个人公众号

Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第22张图片

微信群

Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取(超详解)_第23张图片


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论