uiautomator2基础知识

安装

pip install --pre uiautomator2
或者
git clone https://github.com/openatx/uiautomator2
pip install -e uiautomator2
pip install pillow

##初始化测试手机,安装ATX
python -m uiautomator2 init
在这里插入图片描述

连接手机

  1. usb连接
    手机连接PC

  2. ip连接
    2.1通过usb连接
    2.2 adb命令:adb tcpip 5566
    2.3 adb connect ip:5566
    这是就可以断开usb连接了,用adb devices查看连接设备

元素定位工具weditor

1.安装
pip install --pre -U weditor

2.打开
python -m weditor
在这里插入图片描述
3.连接手机
输入ip:端口

uiautomator2基本使用

1.连接手机
import time
import uiautomator2 as u2
import weditor

u = u2.connect(“x.x.x.x:5566”)
u = u2.connect_usb(‘手机序列号’)

2.手机屏幕操作
u.unlock()解锁
u.screen_on() 激活屏幕
u.screen_off() 熄灭屏幕

3.app管理
#当前运行app
print(u.current_app())
#{‘package’: ‘com.tencent.mobileqq’, ‘activity’: ‘com.tencent.mobileqq.activity.SplashActivity’}
#app信息
print(u.app_info(“com.tencent.mobileqq”))
#{‘packageName’: ‘com.tencent.mobileqq’, ‘mainActivity’: ‘com.tencent.mobileqq.activity.SplashActivity’, ‘label’: ‘QQ’, ‘versionName’: ‘8.3.5’, ‘versionCode’: 1392, ‘size’: 90475125}
#启动app
u.app_start(“com.tencent.mobileqq”)
u.app_start(“com.tencent.mm”)
#time.sleep(10)
#停止之app
u.app_stop(“com.tencent.mm”)
#关闭app,除了个别
u.app_stop_all([“com.tencent.mobileqq”,“com.tencent.mm”])

4.元素定位
1.Text
u(text=“搜索”).click()
2.ResourceId
u(resourceId=“com.tencent.mobileqq:id/kag”).click()
3.Description
u(description=“快捷入口”).click()
4.ClassName
u(className=“android.widget.EditText”).click()
5.xpath定位
b.xpath(’//*[@text=“搜索”]’).click()
6.方位定位
6.1 左侧left
b(resourceId=“com.netease.mobimail:id/iv_mail_list_plus”).left(resourceId=“com.netease.mobimail:id/iv_mail_list_search”).click()
6.2 右侧right
b(resourceId=“com.netease.mobimail:id/iv_mail_list_search”).right(resourceId=“com.netease.mobimail:id/iv_mail_list_plus”).click()
6.3下方down
b(text=“写邮件”).down(text=“给自己发图”).click()
6.4 上方up
b(text=“给自己发图”).up(text=“写邮件”).click()

5.text输入
b.set_fastinput_ime(True) # 切换成FastInputIME输入法
b.set_fastinput_ime(False) # 切换成正常的输入法
#输入text
b(text=“搜索”).send_keys(“test”)

6.元素操作
6.1长按
u.long_click(838, 977, 5)
6.2点击
b(text=“搜索”).click()

执行adb shell

1.打开app
1.1 os
os.system(“adb shell am start com.tencent.mobileqq”)
1.2 subprocess
order=‘adb shell am start com.tencent.mobileqq’ #获取连接设备
pi= subprocess.Popen(order,shell=True,stdout=subprocess.PIPE)
print(pi.stdout.read())

#样例代码
1.小米手机添加联系人

import time
import uiautomator2 as u2

u = u2.connect("xxxxxxx:5566")
now = time.strftime("%y%m%d%H%M%S")
name = "testuser" + now
b = u.session("com.android.contacts")
time.sleep(3)
b(resourceId="android:id/icon").click()
time.sleep(3)
b(className="android.widget.EditText").click()
b.set_fastinput_ime(True) # 切换成FastInputIME输入法
b(className="android.widget.EditText").send_keys(name)
b(resourceId="android:id/button2").click()
time.sleep(3)
b.press("back")
b(resourceId="android:id/input").click()
b(resourceId="android:id/input").send_keys(name)
b.press("enter")
l = b(text="%s"%name)
info_dict = l.info
print(info_dict)
# {'bounds': {'bottom': 547, 'left': 61, 'right': 955, 'top': 485}, 'childCount': 0, 'className': 'android.widget.TextView', 'contentDescription': None, 'packageName': 'com.android.contacts', 'resourceName': None, 'text': 'testuser200509150448', 'visibleBounds': {'bottom': 547, 'left': 61, 'right': 955, 'top': 485}, 'checkable': False, 'checked': False, 'clickable': False, 'enabled': True, 'focusable': False, 'focused': False, 'longClickable': False, 'scrollable': False, 'selected': False}
b.xpath("//*[@text找到 %d 个联系人]"%1)
assert info_dict["text"]==name

#删除测试数据
x = info_dict["bounds"]["left"]
y = info_dict["bounds"]["top"]
b.long_click(x, y, 5)
b(text="删除").click()
b(resourceId="android:id/button1").click()
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值