您现在的位置是:网站首页>技术文章>Python个人网站

自动化工具uiautomator2控制手机

Petrichor2020-03-24 14:45Python280人已围观

简介个人网站,用来做什么?我刚开始就把它当做一个我吐槽心情的地方,也就相当于一个网络记事本,也会放上一些照片。后来也用来记录自己所学习的知识。

1. 安装

pip install --upgrade --pre uiautomator2

      测试是否安装成功

uiautomator2 --help

2. 可视化工具

pip install -U weditor

      安装好之后,就可以在命令行运行weditor --help 确认是否安装成功了。命令行直接输入 weditor 会自动打开浏览器。

3. UIAutomator2一些操作

# 连接手机的方式:
# 1.通过WiFi:ip根据情况自己修改
d=u2.connect_wifi("ip")
# 1.通过usb:
d=u2.connect_usb("app_name") # app_name通过adb devices查看
# 安装应用
d.app_install(' url ')
d.info  # 获取基本信息
d.window_size()  # # 获取窗口大小
# 打开/关闭屏幕
d.screen_on()  # 打开 
d.screen_off()  # 关闭
# 获取当前屏幕状态
d.info.get('screenOn')
# 解锁屏幕
d.unlock()
# 点击屏幕
d.click(x, y)
# 双击
d.double_click(x,y)
# 长按一下屏幕
d.long_click(x,y)
d.long_click(x,y)  # 长按1秒(默认)
# 滑动
d.swipe(x, y, x, y)
# 解锁9宫格,points不抬起
d.swipe_points([(0.228, 0.525),(0.005, 0.525),(0.766, 0.525),(0.5, 0.677),(0.228, 0.828),(0.497, 0.828),(0.761, 0.828)],0.05)
# 按键操作
d.press("home") 
d.press("back") 
d.press(x, y)
# 向上滑动
d(scrollable=True).scroll.vert.backward()
# 竖直滑动到结尾
d(scrollable=True).scroll.toEnd(60)
# 向下滑动
d(scrollable=True).scroll(steps=30)
# 竖直滑动到开头
d(scrollable=True).scroll.toBeginning(steps=60)
# 水平向右滑动
d(scrollable=True).scroll.horiz.forward(steps=60)
# 水平向右滑动,直到最右边
d(scrollable=True).scroll.horiz.toEnd(steps=50, max_swipes=500)
# 水平向左滑动
d(scrollable=True).scroll.horiz.backward(steps=50)
# 水平向左滑动,直到最左边
d(scrollable=True).scroll.horiz.toBeginning(steps=100, max_swipes=1000)
# 拖动
d(text="Settings").drag_to(x, y, duration=0.5)
# 拖动到指定位置,1s内完成:
d(text="Settings").drag_to(text="text", duration=1)
# 双指从(a,b),(c,d)滑动(a1,b1),(c1,d1),步长100:
d().gesture((a,b),(c,d), (a1,b1),(c1,d1),steps=100)
# 从屏幕外侧向中心滑动,percent为左右起始位置占两边的比例:
d().pinch_out(percent=33, steps=100)
# 从屏幕中心向外侧滑动,percent为左右起始位置占两边的比例:
d().pinch_out(percent=33, steps=100)
# 1.点击特定对象中心位置:
d(text="Settings").click()
# 2.等待对象显示并点击,等待最多10s:
d(text="Settings").click(timeout=10)
# 3.当10s内对象出现就点击,默认0s:
clicked = d(text='Skip').click_exists(timeout=10.0)
# 4.点击并轮询对象直到消失,其中maxretry为最多点击次数,默认10;interval为轮询时间间隔,默认1:
d(text="Skip").click_gone(maxretry=10, interval=1.0)
# 5.长按指定的对象,duration为按住时间,timeout为超时时间:
d(text="Settings").long_click(duration=10,timeout=10)
# 6.拖动指定对象到x,y位置,0.5s完成:
d(text="Settings").drag_to(x, y, duration=0.5)
# 7.拖动指定对象到另一个对象位置,0.5s内完成:
d(text="Settings").drag_to(text="Clock", duration=0.5)
# 8.双指从(a,b),(c,d)滑动(a1,b1),(c1,d1),步长100:
d().gesture((a,b),(c,d), a1,b1),(c1,d1),steps=100)
# 9.从屏幕外侧向中心滑动,percent为左右起始位置占两边的比例:
d().pinch_out(percent=33, steps=100)
# 10.从屏幕中心向外侧滑动,percent为左右起始位置占两边的比例:
d().pinch_out(percent=33, steps=100)
# 11.等待对象:
d(text='相机').wait(10)
# 12.等待对象消失,最多等待10s:
d(text='相机').wait_gone(timeout=10)
# 13.滚动:
d(scrollable=True).scroll(steps=10)  # a.向上滚动
d(scrollable=True).scroll.vert.backward()  # b.向下滑动
d(scrollable=True).scroll.horiz.forward(steps=50)  # c.水平向右滚动
d(scrollable=True).scroll.horiz.backward(steps=50)  # d.水平向左滚动
d(scrollable=True).scroll.horiz.toBeginning(steps=100, max_swipes=1000)  # e.水平滑动到最左边
d(scrollable=True).scroll.horiz.toEnd(steps=100, max_swipes=1000)  # f.水平滑动到最右边
d(scrollable=True).scroll.toEnd()  # g.竖直滑动到结尾
d(scrollable=True).scroll.toBeginning(steps=50)  # h.竖直滑动到开头
d(scrollable=True).scroll.to(text ='测试')  # i.滑动到指定位置(测试)

 

很赞哦!(4)

文章评论