前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android自动化之-python-uiautomator2入门简介

Android自动化之-python-uiautomator2入门简介

作者头像
十四君
修改2019-11-26 11:10:58
3K0
修改2019-11-26 11:10:58
举报
文章被收录于专栏:Urlteam

python-uiautomator2是一个自动化测试开源工具,仅支持Android平台的原生应用测试。python-uiautomator2封装了谷歌自带的uiautomator2测试框架,提供便利的python接口。他允许测试人员直接在PC上编写Python的测试代码,操作手机应用,完成自动化,大大提高了自动化代码编写的效率。

原理:

python-uiautomator2主要分为两个部分,python客户端,移动设备

  • python端: 运行脚本,并向移动设备发送HTTP请求
  • 移动设备:移动设备上运行了封装了uiautomator2的HTTP服务,解析收到的请求,并转化成uiautomator2的代码。

整个过程

  1. 在移动设备上安装atx-agent(守护进程), 随后atx-agent启动uiautomator2服务(默认7912端口)进行监听
  2. 在PC上编写测试脚本并执行(相当于发送HTTP请求到移动设备的server端)
  3. 移动设备通过WIFI或USB接收到PC上发来的HTTP请求,执行制定的操作

环境安装

1:ADB:

各种安卓测试框架的基础工具包,安装参考:https://blog.csdn.net/L_201607/article/details/78150107

官网:http://adbshell.com/downloads

2:python-uiautomator2
代码语言:javascript
复制
python -m uiautomator2 init

3:安卓设备安装atx-agent

首先设备连接到PC,并能够adb devices发现该设备。

代码语言:javascript
复制
python -m uiautomator2 init

这个命令做的是:从github下载atx–agent文件,并推送到手机。在手机上安装包名为com.github.uiautomator的apk

py连接安卓手机

连接手机:

python-uiautomator2连接手机的方式有两种,一种是通过WIFI(ip),另外一种是通过USB(ip+id)。两种方法各有优缺点。 WIFI最便利的地方要数可以不用连接数据线,USB则可以用在PC和手机网络不在一个网段用不了的情况。

1.使用WIFI连接

手机获取到手机的IP,并确保电脑可以PING通手机。手机的IP可以在设置-WIFI设置里面获取到。 比如手机的IP是192.168.0.100,连接设备的代码为

代码语言:javascript
复制
import uiautomator2 as u2
d = u2.connect('192.168.0.100')

2.使用USB连接

手机的序列号可以通过adb devices获取到,假设序列号是123456f,连接代码为

代码语言:javascript
复制
import uiautomator2 as u2
d = u2.connect_usb('123456f')

可视化抓取控件以及常用操作

Android自动化之-ATX录放编辑器WEditor的安装使用与异常解决

如何在WEditor如何定位元素呢:

定位方式

  1. ResourceId定位: d(resourceId="com.smartisanos.clock:id/text_stopwatch").click()
  2. Text定位 d(text="秒表").click()
  3. Description定位 d(description="..").click()
  4. ClassName定位 d(className="android.widget.TextView").click()
代码语言:javascript
复制
# click 点击
d(text="Settings").click()

# long click 长点击 
d(text="Settings").long_click()

# 等待元素的出现
d(text="Settings").wait(timeout=10.0)

对手机元素框输入中文:

如果可以定位到元素,直接通过set_text就可以输入中文

代码语言:javascript
复制
d(text="Settings").set_text("你好")

如果定位不到元素需要使用send_keys方法,以及切换输入法

代码语言:javascript
复制
d.set_fastinput_ime(True)
d.send_keys("你好 Hello")
d.set_fastinput_ime(False) # 输入法用完关掉

截图:

代码语言:javascript
复制
d.screenshot("home.jpg")

获取图层信息:

代码语言:javascript
复制
xml = d.dump_hierarchy()

github:https://github.com/openatx/uiautomator2

本文主内容转自:https://testerhome.com/topics/11357

原创文章,转载请注明: 转载自URl-team

本文链接地址: Android自动化之-python-uiautomator2入门简介

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-03-022,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2:python-uiautomator2
  • py连接安卓手机
  • 可视化抓取控件以及常用操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档