美文网首页
uiautomator2 python远程操作Android

uiautomator2 python远程操作Android

作者: 开拖拉机去撒哈拉 | 来源:发表于2018-10-02 22:14 被阅读0次

    上次写了一个Android自动化脚本,使用了appium和python-appium,刚开始使用时感觉很厉害,手机连上数据线之后,编写一系列代码就可以使Android自动操作,但是需要安装appium客户端(当时400多M),还需要手机用数据线连接计算机,后来无意间在网上发现了uiautomator2,和weditor,可以让手机脱离数据线,用局域网连接电脑,而且不需要额外安装软件,非常方便。

    1、安装uiautomator2:pip install --pre uiautomator2

    依赖(pillow):pip install pillow

    2、初始化:(第一次需要)手机通过数据线连入电脑,abd可以识别到设备(adb可免费下载,下载后配置环境变量,在cmd中输入adb devices,使adb可以识别到手机),执行如下命令:

    python -m uiautomator2 init

    过程中会在手机安装程序:uiautomator-server 、atx-agent、openstf/minicap、openstf/minitouch

    保持手机与电脑在同一wifi下,查看手机ip地址。

    3、连接

    import uiautomator2 as u2

    d = u2.connect('192.168.8.100')

    print(d.info)

    此时,会输出连接信息。证明手机连接成功。

    4、定位

    使用python库weditor进行定位,weditor是运行在浏览器的一个服务,通过对页面节点的选择,可定位到相应的元素。使用之前需要pip安装:

    pip install --pre --upgrade weditor

    使用:python -m weditor

    此时weditor会在浏览器中开启,在页面左上角选择Android,输入设备IP(192.168.8.100),点击Connect按钮。

    weditor大体可分为三块,最左边是此时手机的屏幕,可通过鼠标点击进行定位,其中Home,back,menu键分别对应手机的主页,返回,菜单键,最下边的框是操作过程中的响应;

    最右边是手机页面的源代码,中间是定位到的元素的信息,其中定位的元素可以tap(点击),可以填写(send keys),操作后,程序会将操作的python代码直接生成,显示在中间的最下边。还有一个reload按钮,进行对手机页面的刷新。

    代码写好之后,weditor就可关闭,直接运行即可,不需依赖weditor。

    d = u2.connect(ip)

    d.app_start('com.android.contacts')# 打开手机通讯录

    d.swipe(690, 720, 100, 720)            #向左滑动

    d(resourceId="com.android.contacts:id/option_edit_contact").click() # 点击右上角三个点

    d(resourceId="com.android.contacts:id/title").click()  #导入联系人

    d.app_start('com.tencent.mm') # 开启微信

    操作很简单,功能超级强!

    相关文章

      网友评论

          本文标题:uiautomator2 python远程操作Android

          本文链接:https://www.haomeiwen.com/subject/xpbaoftx.html