python uiautomator2 环境搭建和基本使用

文章详细介绍了如何安装adb、uiautomator2以及遇到的weditor安装时的UnicodeDecodeError问题,提供了两种解决方案。接着,讲解了如何处理atx-agent的下载和使用,以及通过Python的uiautomator2库进行Android设备的UI自动化操作,包括滑动、点击和文本输入等操作。
摘要由CSDN通过智能技术生成

安装

adb安装和配置

可以百度或者看看这个https://blog.csdn.net/weixin_37600187/article/details/127987889

安装uiautomator2

pip install -i https://mirrors.aliyun.com/pypi/simple -U uiautomator2

安装 weditor(一般情况会报错)

pip install https://mirrors.aliyun.com/pypi/simple -U weditor

    UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 645: illegal multibyte sequence
    error in setup command: Error parsing C:\Users\Cassie\AppData\Local\Temp\pip-install-fbm1hjt8\weditor\setup.cfg: UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in
 position 645: illegal multibyte sequence

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\Cassie\AppData\Local\Temp\pip-install-fbm1hjt8\weditor\

解决办法1:
python3.7 可以用下面这个(3.6版本以上应该都可以)

pip install weditor==0.6.4  -i https://pypi.douban.com/simple --trust -host=pypi.douban.com

解决方法2:
set PYTHONUTF8=1
pip install weditor==0.6.3

开始安装atx-agent,命令:

这里需要先用手机和电脑用adb连接上
这里是从GitHub上下载的,开vpn下载,不然下载会超时

python -m uiautomator2 init

下载完成后小汽车图标
在这里插入图片描述

使用

Pycharm 启动python -m weditor 服务
等待几秒会自动打开浏览器,输入设备编号(adb devices获取)点击连接
在这里插入图片描述
在这里插入图片描述
静态情况下,点击刷新查看当前页面
在这里插入图片描述
当前使用的三个定位方式
在这里插入图片描述
三种使用方式
dv.xpath(‘//*[@text=“谜符号吧”]’)
dv(text=" 谜符号吧")
dv(resourceId=‘com.baidu.tieba:id/obfuscated’)
小技巧1:
这种输入框里面有自带这种文字的取路径的时候是错误的,这文字会一直变化
在这里插入图片描述
可以点击这个输入框后再进行元素定位
在这里插入图片描述
python代码使用

from time import sleep

import uiautomator2 as u2

dv = u2.connect_usb('JTK5T19C17008518')
# currentPackageName的值是当前前台运行的包名
# print(dv.info)

# 启动包名
dv.app_start('com.baidu.tieba')
sleep(1)
# 加上隐性等待时长10s,隐性等待只需要加一次,全局通用
dv.implicitly_wait(10)
#宽高比例
w, h = dv.window_size()
dv.swipe(0.5 * w, 0.4 * h, 0.5 * w, 0.6 * h,0.6)
dv.xpath('//*[@text="动漫"]').click()
# 滑动dv.swipe(sx, sy, ex, ey, 0.5)
dv.swipe(0.5 * w, 0.9 * h, 0.5 * w, 0.1 * h,0.6)
sleep(1)
dv.xpath('//*[@resource-id="android:id/content"]/android.widget.RelativeLayout[1]/android.view.ViewGroup[1]/android.view.ViewGroup[1]/android.widget.LinearLayout[1]/android.widget.FrameLay'
         'out[1]/android.view.ViewGroup[1]/android.widget.ImageView[1]').click()
dv.xpath('//android.widget.EditText').set_text('测试啊')

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亚索不会吹风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值