移动端ui自动化测试-获取Android/iOS设备元素

在移动端UI自动化测试过程中,需要对设备上的元素进行定位,获取元素进行点击或者校验操作,在此记录三个获取元素的方法/工具,分别是UIAutomatorViewer、appium inspector,以及在代码中打印页面元素。

一、UIAutomatorViewer

UIAutomatorViewer是Android SDK中的一个工具

位于android sdk目录下,/tools/bin/

打开后

左上角工具栏的四个按钮,功能分别为:打开已保存的界面快照和布局;抓取手机当前屏幕截图;带有压缩层次结构的设备屏幕截图;保存当前屏幕界面的截图和布局。

第二按钮与第三按钮的区别在于: 第二按钮把全部布局呈现出来,而第三按钮只呈现有用的控件布局。 比如存在一个Frame,但只有装饰功能,那么点击第三按钮时,可能不被呈现。

打开UIAutomatorViewer工具后,手机用数据线连接电脑,操作到需要截图的页面,点击第二个按钮截图即可。

点击左侧需要查看的控件,即可在右侧看到控件对应的详细信息。

uiautomatorviewer常见问题

界面按钮点击无反应,不能抓取手机屏幕

可以参考以下方案解决:

1.open ~/Library/Android/sdk/tools/lib/x86_64 打开x86_64文件夹,将其中的 swt.jar 重命名为 swt2.jar;

在这个链接中下载swt.jar 文件:https://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops4/R-4.19-202103031800/swt-4.19-cocoa-macosx-x86_64.zip

将下载的swt文件中的swt.jar copy到 /Library/Android/sdk/tools/lib/x86_64 这个文件夹下,并将swt.jar文件重命名为swt3.jar
然后再次打开uiautomatorviewer

2.可以尝试拔了数据线重新插上;

3.可以关闭和重启adb服务。 执行命令如下: adb kill-serveradb start-server

二、appium inspector

appium desktop自带appium inspector,并且,不同于UIAutomatorViewer只能获取安卓设备的元素,appium inspector可以获取安卓和iOS设备的元素。

启动appium之后,点击右上角的🔍,打开appium inspector

布局1是Appium Inspector服务的设置。 Automatic Server :自动服务器。 Custom Server :定制服务器。 Select Cloud Providers :选择云提供商。 我们一般使用Automatic Server即可: Will use currently-running Appium Desktop server 将使用当前运行的Appium桌面服务器。


布局2是高级设置。 可以设置: Allow Unauthorized Certificates:允许未经授权的证书。 Use Proxy:使用代理服务器。 初学一般我们不进行高级设置。


布局3是Desired Capabilities参数设置。 Desired Capabilities: 编写Desired Capabilities参数。 Saved Capability Sets:已保存的Desired Capabilities,可以进行查看和修改。 Attach to Session...:附加到会话...

添加Desired Capabilities参数时,可以在左侧一行一行手动添加,也可以将编辑好的json格式数据直接粘贴在右侧。

点击start session,获取手机界面。

布局1:截图的手机界面 可以点击选择元素。


布局2:顶部操作栏 从左往右的按钮依次是 Select Element:选择元素。 Swipe By Coordinates:选择滑动的起始和结束位置。 Tap By Coordinates:使得手机界面变换可操作状态,可以点击界面的元素。 Back:模拟Android的返回键。 Refresh Source & Screenshot:刷新页面,用来重新获取手机当前界面。 Start Recording:录制操作。 Search for element:校验定位表达式。 Copy XML Source to Clipboard:复制XML树。 Quit Session & Close Inspector:退出当前Session。


布局3:XML树 以XML树的形式,展示界面上的控件布局。


布局4:控件属性区域 选择某个控件,在这里可以显示该控件的所有属性和值。

搜索元素🔍

appium inspector比UIAutomatorViewer的一个优势在于,可以校验我们编写的定位表达式是否能够正确定位到控件(搜索功能),可以模拟用户操作(点击、滑动、返回)。

三、在代码中打印页面元素

有的时候可能会用UIAutomatorViewer或者appium inspector这两个工具都无法截取到页面需要的状态,或者截屏截到了但是获取不到对应的元素,这个时候就可以用代码打印页面所有的元素,然后根据文案内容去拿到元素信息。

print(driver.page_source)

有的时候觉得这三个方法都还是有些局限性,有更好用的工具欢迎交流讨论~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值