- 退出appium,每次脚本结束后,记得退出appium服务,不然下次启动会报错session不一样了。
driver.quit()
- appium1.4版本以上可以在输入框输入中文,需要加入两行
desired_caps["unicodeKeyboard"] = "True"
启动了appium的默认键盘,并且把手机的模拟键盘给关掉了。
desired_caps["resetKeyboard"] = "True" - 最简单的滑动操作
driver.swipe(x,y,x,y,t)
前面xy是起点,后面xy是终点。t是持续的时间,也就是要几秒钟完成这个滑动,可以不写。 - 获取控件的content-desc
.get_attribute("name")
- 安卓的控件中,id也是可以重复的。
-
彻底清空输入框的方法,用键盘模拟删除。
element.click() #先点击该输入框
driver.press_keycode(29,28672) #ctral+a 全选输入框内容
swzj.press_keycode(112) #点击删除按键 -
appium可以借助pc端selenium的物理按键代码来操作。
driver.press_keycode() 括号内填入pc端键盘的代号
8.对uiautomator不能识别出来的控件,或者报错的时候,可以用getpagesource方法,然后把结果处理一下,自己慢慢找。也可以用testhome老大的框架自动搜索。
9.不光要测试ui,测试手机发送的请求是否正确,可以用中间人攻击器,截获请求,校验所有发出去的参数是否正确
10.可以用中间人来脱离后段开发接口,直接对前端就开始写脚本
11.可以用中间人来抓去所有请求,并都返回500或 延迟。来看手机app的容错性,崩溃概率等。
12.如果遇到class定位非常非常慢,甚至要好几分钟的时候,只能改成id定位了。
13.有些页面在用uiauto获取控件时报xml之类的错误。可以用模拟器来操作。就可以获取到了