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,终于正确显示了电脑中已连接安卓设备信息,如下图:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM