本文共 3542 字,大约阅读时间需要 11 分钟。
pip install --pre uiautomator2
或者 git clone https://github.com/openatx/uiautomator2 pip install -e uiautomator2 pip install pillow##初始化测试手机,安装ATX
python -m uiautomator2 initusb连接
手机连接PCip连接
2.1通过usb连接 2.2 adb命令:adb tcpip 5566 2.3 adb connect ip:5566 这是就可以断开usb连接了,用adb devices查看连接设备1.安装
pip install --pre -U weditor2.打开
python -m weditor 3.连接手机 输入ip:端口1.连接手机
import time import uiautomator2 as u2 import weditoru = 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()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 timeimport uiautomator2 as u2u = u2.connect("xxxxxxx:5566")now = time.strftime("%y%m%d%H%M%S")name = "testuser" + nowb = 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.infoprint(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()
转载地址:http://xtmji.baihongyu.com/