adb做为android的调试桥,在做app自动化中有着巨大的用处,可以帮助我们解决问题,今天主要认识adb shell input
adb shell input
我们首先通过cmd输入adb shell input有哪些内容
$ adb shell input
Usage: input [<source>] <command> [<arg>...]
The sources are:
mouse
keyboard
joystick
touchnavigation
touchpad
trackball
stylus
dpad
touchscreen
gamepad
The commands and default sources are:
text <string> (Default: touchscreen)
keyevent [--longpress] <key code number or name> ... (Default: keyboard)
tap <x> <y> (Default: touchscreen)
swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
press (Default: trackball)
roll <dx> <dy> (Default: trackball)
上面这么多到底讲的啥?
其实说白了就是支持一下内容
1、text:支持输入文本内容(暂不支持中文)
2、keyevent:模拟按键
3、tap:点击
4、swipe:滑动
5、press:轨迹球按下
6、roll:轨迹球滚动
text
直接打开终端输入
# 输入内容(暂不支持中文)
adb shell input text 1111
keyevent
直接打开输入对应的值
# 模拟手机按键home
adb shell input keyevent 3
tap
选取手机上的坐标,然后直接输入
# tap点击
adb shell input tap 454 204
坐标怎么来的:通过uiautomatorviewer.bat定位工具查看坐标[393,140] [516,268],然后求出中间值[454 204]
swipe
和tap一样,选取两个坐标进行滑动,坐标安静这边选取的是(x1/2 Y3/4 x1/2 Y1/4)
代码中的input
上面这么多都是在cmd中敲出来的,真正的自动化确实要在代码中,我们可以进行对这些常用的adb命令进行封装起来
import os
class input(object):
# 输入文字
def text(self,text):
adb = 'adb shell input text %s'%text
os.popen(adb)
# 滑动
def swipe(self,x,y,x1,y1):
adb = 'adb shell input swipe %s %s %s %s '%(x,y,x1,y1)
os.popen(adb)
# 模拟按键
def keyevent(self,k):
adb = 'adb shell input keyevent %s'%k
os.popen(adb)
if __name__ == '__main__':
adb = input()
adb.text(1111)
adb.swipe(280,720,280,240)
adb.keyevent(3)
点赞关注~~了解更多,加入我们,642830685,免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。