python uiautomator2 环境搭建和基本使用

安装

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\

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

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

开始安装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('测试啊')

猜你喜欢

转载自blog.csdn.net/aaaaaaaaanjjj/article/details/130137946