Appium如何定位APP中控件元素方法

方法一:

安卓SDK中有UI Automator Viewer可用于定位APP控件中的元素,UI Automator Viewer的位置就在sdk的tools下,可以通过uiautomatorviewer.bat启动;

双击uiautomatorviewer.bat后,启动后页面如下:

 页面右上角有4个按钮,分别为:打开本地文件、dump页面、dump压缩格式的页面、保存,点击下图中红圈圈出的dump页面按钮,页面将弹出“Select device”的对话框,点击下拉框列出的即为电脑已连接的安卓手机列表(包括模拟器emulater),确定需要定位的手机后,点击“OK”按钮,在一系列加载进度完成后,此时UI Automator Viewe页面会同步显示已选择手机的当前UI页面,可对当前页面元素进行定位;

此后,在左侧同步的手机页面点击所要定位的按钮等控件,此时右上方会高亮显示该控件的相关信息,比如点击Calculator中的“9”后,右上方显示它是一个Button,右下方显示了该控件相关的详细信息;

备注:在上述操作过程中,出现了几个问题:

问题1:

UI Automator Viewer无法识别打开电脑已连接的设备,此时先在命令行中运行adb devices查询电脑中已连接的设备信息,却发现我的电脑中adb是无效的命令,此时查询资料后并比对问题,发现所需配置的环境变量中,我还缺了一项尚未配置,所以我执行了以下操作:在系统变量中新建变量名:android,变量值:E:\03.测试相关文档\测试工具\04.Appnium\android-sdk-windows\platform-tools;(即已解压android-sdk-windows文件夹下platform-tools路径),然后在PATH中加入%android%;(注意用分号隔开,分号都是英文的),配置完成后,再运行adb devices,可运行,但出现了问题2;

问题2:

问题1解决后,在命令行中运行adb devices,发现该命令不再提示为无效命令,但出现了新的问题提示,如下:

error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037:
通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 (10048)

查询资料后,发现问题是因为端口5037被其他应用占用,很有可能是被某某手机助手占用,解决方法:

(1)打开任务管理器-》查看—》选择列—》勾选pid,找到占用5037的进程,然后选中结束进程,然后重新打开cmd运行adb devices;

(2)关掉360手机助手,豌豆荚手机助手等,然后重新打开cmd运行adb devices;

我此处的解决方法是关掉电脑中的“91助手”,再重新启动cmd运行adb devices,终于正确显示了电脑中已连接安卓设备信息,如下图:

 

posted @ 2017-02-27 15:06  Krystal-acan  阅读(8166)  评论(2编辑  收藏  举报