python自动化测试(一)--uiautomator总结

1.初始化

  • 单个设备
from uiautomator import device as d
  • 多个设备
from uiautomator import Device
d=Device('014E05DE0F02000E')

2.按键操作

KEYS = ["home","back","left",'right',"up","down","center","menu","search","enter","delete","recent","volume_up", "volume_down",
 "volume_mute","camera","power"]
 for key in KEYS:
     print key
     d.press(key)
     time.sleep(1)

3.坐标操作

#点屏
d.click(2023, 1256)
# #长按屏幕
# long click (x, y) on screen
 d.long_click(201, 0235)

4.滑动

# swipe from (sx, sy) to (ex, ey)
d.swipe(sx, sy, ex, ey)
# # swipe from (sx, sy) to (ex, ey) with 10 steps
d.swipe(sx, sy, ex, ey, steps=10)

5.拖动

# drag from (sx, sy) to (ex, ey)
d.drag(sx, sy, ex, ey)
# drag from (sx, sy) to (ex, ey) with 10 steps
d.drag(sx, sy, ex, ey, steps=10)

6.屏幕

print d.info
# 打开屏幕
d.screen.on()
# 关闭屏幕
d.screen.off()
# # natural 或者 n 代替
# # left 或者 l 代替
# # right 或者 r 代替
# # upsidedown或 u(不能设定)
# #获取orientation(方向),可能是上述中的任意一种
orientation = d.orientation
print orientation
# #设置定向和冻结旋转。
# #说明:"upsidedown"不能用于Android 4.3 以前的版本
d.orientation="l"
d.orientation="r"
d.orientation="n"

# 打开通知消息栏,不能用于Android 4.3以前的版本
d.notification()
# 打开快速设置栏,不能用于Android 4.3以前的版本
d.open.quick_settings()
# 等待当前窗口空闲
d.wait.idle()
# 等待直到窗口发生刷新事件
d.wait.update()

7.监视器

#当一个选择器找不到匹配时,uiautomator 会运行全部已经注册的观察者
#条件匹配时点击目标
d.watcher("AUTO_FC_WHEN_ANR").when(text="ANR").when(text="Wait").click(text="Force Close")
#条件匹配时按下按键
d.watcher("AUTO_FC_WHEN_ANR").when(text="ANR").when(text="Wait").press("back", "home")

8.选择器

#选择器支持以下参数
# text,textContains,textMatches,textStartsWith
# className, classNameMatches
# description,descriptionContains,descriptionMatches,descriptionStartsWith
# checkable,checked,clickable,longClickable
# scrollable,enabled,focusable,focused,selected
# packageName, packageNameMatches
# resourceId, resourceIdMatches
# index, instance

d(text="Settings").clear_text()  # clear the text(清除文本信息)
d(text="Settings").set_text("My text...")  # set the text(设置文本信息)
d(text="Settings").click()
d(text="Settings").long_click()
#d(text="Settings").drag.to(x, y, steps=100)
d(text="Settings").drag.to(text="Clock", steps=50)
d(text="Settings").swipe.right()
d(text="Settings").swipe.left(steps=10)
d(text="Settings").swipe.up(steps=10)
d(text="Settings").swipe.down()
# d(text="Settings").gesture((sx1, sy1), (sx2, sy2)).to((ex1, ey1), (ex2, ey2))
# d().gestureM((sx1, sy1), (sx2, sy2),(sx3, sy3)).to((ex1, ey1), (ex2, ey2),(ex3,ey3))
d(text="Settings").wait.exists(timeout=3000)
d(text="Settings").exists(timeout=3000)
d(text="Settings").wait.gone(timeout=1000)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,009评论 3 119
  • PPMESSAGE 流程中可以应用变量,这些变量可以用于逻辑计算节点,正则表达式节点,消息发送节点。正确理解变量,...
    丁贵金阅读 346评论 0 0
  • 你相信吗,这个世界上,真的会有如此相似的人存在。 我一直不相信这个世界上,有与我感同身受的人存在,曾经在整个小学,...
    wanna_dance阅读 807评论 0 1
  • 加班间隙,有两个朋友在电话里聊天: 一个问:“怎么,你也在加班吗?”另一个回答:“没有,我从不加班!”问的人羡慕坏...
    古尔浪洼阅读 1,803评论 0 9
  • 立冬来临的时候风一阵猛似一阵地快活引导爱情如雪的纯静,绝美的飘升引导灵魂与秋天优雅地再见 用最深的凝望和祝福送最后...
    蓝蓝的子夜爱在阳光阅读 554评论 40 40