常用方法集
- touch()
touch(v, times=1,duration=0.01,right_click=False):点击
v:截图对象-图片 或者坐标(x,y) 通过框选按钮来获取v的值 此(x,y)类似(1024,768)的坐标值
times:点击次数
duration:点击持续时间
right_click:如果是windows平台,则=True表示鼠标右键点击,Android/IOS无用
【注意】:
1.times和duration可以组合使用,表示点击times次,每次间隔duration秒,这就可以实现双击效果:duration=0.01 times=2
2.使用方式:点击方法后,在右边设备窗口设备界面上扩选要操作的对象就可以;
如:点击屏幕中间可以使用以下两句完成:
w,h=device().get_current_resolution() #获取手机分辨率
touch([0.5*w, 0.5*h])
- wait()
wait(v, timeout=None, interval=0.5, intervalfunc=None):等待
v:截图对象-图片 或者坐标(x,y) 通过框选按钮来获取v的值 此(x,y)类似(1024,768)的坐标值
timeout:等待超时时间,默认None,可为指定超时时间或拿取到的ST.FIND_TIMEOUT全局变量值
interval:尝试查找匹配项的时间间隔,即间隔interval秒去查找下指定v对象
intervalfunc:每次尝试查找匹配项失败后调用的方法名
返回:匹配的对象的坐标,此pos类似(1024,768)的坐标值
方法含义:一直间隔interval秒去查找指定的v对象,直到时间超过timeout后未找到就报TargetNotFoundError错误,期间如果每次的间隔查找遇到错误就调用intervalfunc方法
- swipe()
swipe(v1, v2=None, vector=None, duration=0.01):滑动
v1:截图对象-图片 或者坐标(x,y) 此(x,y)类似(1024,768)的坐标值
v2:截图对象-图片 或者坐标(x,y) 从v1滑动到v2 优先级高于vector
vector:[x,y]录制时自动生成,记录滑动比例,向右边:x正值,向下边:y正值;向左边:x复制;向上边:y负值
duration:滑动的持续时间。默认0.01。即在duration秒内滑动结束
steps:滑动步进。默认5步。即滑动几次。
方法含义:从v1 经历steps步滑动到v2,且期间总持续duration秒,相当于每步是duration/steps 秒。如果没有v2值则滑动的方向依赖于vector的坐标点为终点
如:
上滑:poco.swipe([0.5, 0.5], [0.5, 0.3], duration=2.0)
下滑:poco.swipe([0.5, 0.3], [0.5, 0.5], duration=2.0)
先获取屏幕比例再滑动
W,H=poco.get_screen_size()
swipe((W0.3,H0.3),(W0.3,H0.8),duration=0.1)
- exists()
exists(v):元素判断
v:截图对象 -图片 或者坐标(x,y) 此(x,y)类似(1024,768)的坐标值
返回值:未找到v返回False,找到后返回v的pos,此pos类似(1024,768)的坐标值
- text()
text(text, enter=True, search=False):输入文本
text:输入文本 必须是当前控件被激活状态
enter:输入后自动执行回车,默认True,=False不执行回车
search:输入后强制执行search,默认False,针对android的yosemite_ime输入类型,软键盘有搜索按钮的
- keyevent(keyname):键盘事件
keyname:按键名
注意:Android和ios键盘事件时有区别的,对于-delete删除键,android、win通用。而ios目前只支持home事件
具体键盘事件值,请参照另一篇文章:
https://mp.weixin.qq.com/s/-8zgSgYTJ6YZkUnwS_YqYw
点击系统返回键:keyevent("KEYCODE_BACK")
- snapshot(filename=None, msg=""):截图
filename:保存截图的文件名
msg:描述测试点,传值后在html报告中显示
返回:截图后保存的文件名 - sleep(secs=1.0)
secs:延迟时间,默认1.0秒 - assert_exists(v, msg="")
v:图片 或者坐标(x,y) 通过框选按钮来获取v的值。(x,y)类似(1024,768)的坐标值
msg:测试点描述,传值后在html报告中显示
返回:找到v就返回v的坐标,类似(1024,769),未找到就raise AssertionError
10.0 assert_not_exists(v, msg="")
v:图片 或者坐标(x,y) 通过框选按钮来获取v的值。(x,y)类似(1024,768)的坐标值
msg:测试点描述,传值后在html报告中显示
返回:None 如果断言失败就raise AssertionError
11 assert_equal(first, second, msg="")
first:第一个对比项,图片 或者坐标(x,y) 通过框选按钮来获取v的值 此(x,y)类似(1024,768)的坐标值
second:第二个对比项,图片 或者坐标(x,y) 通过框选按钮来获取v的值 此(x,y)类似(1024,768)的坐标值
msg:测试点描述,传值后在html报告中显示
返回:None 如果断言失败就raise AssertionError
12 assert_not_equal(first, second, msg="")
first:第一个对比项,图片 通过框选按钮来获取first的值
second:第二个对比项,图片 通过框选按钮来获second的值
msg:测试点描述,传值后在html报告中显示
返回:None 如果断言失败就raise AssertionError
13.判断是否存在,存在则点击:
b1 = poco(text=‘先不用了’)
if b1.exists():
poco(text=‘先不用了’).click()
assert_equal(poco(text = “Cooling completed”).exists(),True, ‘降温结果页’)