摘要:使用包控制手机时,需要在手机上安装在电脑中使用弹出运行框,在框内输入调用命令行窗口。具备较多功能,在此不再赘述,百度具有较多资料。调试工具用于查看手机当前状态用浏览器控制手机调试手机,还可以实时的查找控件中的属性以及其它属性值等等。
# GitHub地址:# https://github.com/openatx/uiautomator2pip install uiautomator2 # 这个包是用于控制手机pip install pillow # 这个包用于截图pip install -U weditor # 这个包是可以调试,在浏览器页面上直观的获取某个控件名称
adb全称叫做android调试桥(Android Debug Bridge),是Android官方谷歌公司开发的连接电脑与手机的插件,一般来说是包含在Android Studio之中下载的,当然我们在此处用不到Studio的其它功能,因此只下载adb包即可。
下载链接如下:
SDK Platform Tools 版本说明 | Android 开发者 | Android DevelopersAndroid SDK Platform-Tools 是 Android SDK 的一个组件。https://developer.android.google.cn/studio/releases/platform-tools?hl=zh_cn这个链接下载的名称叫做Platform Tools,其中是包含adb工具的,其名称为adb.exe,与之相关的还有几个以ADB开头名称的文件。将此压缩包解压之后,放在系统的任意位置,然后将此位置加入Path环境变量即可。这样我们就可以在系统的任意位置调用到此exe文件。
将手机通过USB数据线连接至电脑,打开开发者模式,并开启USB调试,并且开启允许电脑通过USB向手机安装软件等权限。接收电脑发来的链接秘钥并链接。
(使用Python包uiautomator2控制手机时,需要在手机上安装app)
在电脑中使用WIN+R弹出运行框,在框内输入cmd调用命令行窗口。在窗口中输入如下命令:
adb devices
窗口会打印当前USB所连接的手机信息,如果没有手机连接,将会显示如下信息,这时需要检查手机连接的USB线是否正常,并且检查开发者模式是否打开等等。当然如果直接报错找不到adb命令,则需要检查adb相关配置是否完成。
C:/Users/Administrator>adb devicesList of devices attachedC:/Users/Administrator>|
如果完全正常,且手机已经链接,则将会显示如下信息:
C:/Users/Administrator>adb devicesList of devices attached9phqaetw deviceafdsaf4 deviceC:/Users/Administrator>|
在List of devices attached这一行之后,有几行信息,便说明已经有几个设备已经链接到ADB调试桥,而在每一行开头,device之前的那一串字符串,便是设备的标志码。通过设备的标志码,我们就可以链接到指定的设备,当然如果本台电脑上只链接有一块手机,此标志码可以不记,如果链接有多块手机,则需要记录每一个标志码,以及标志码对应的实际手机设备。
如果不知道哪个标志码对应哪台设备,则可以将其中一个USB拔出,再输入命令,反复查看,以此确认标志码与设备之间一一对应的关系。
在命令行执行如下命令,在手机上安装ATX软件。如果手机上没有安装此APP,uiautomator2将无法控制手机。
python -m uiautomator2 init
比较简单的控制方式是:
# 引用uiautomator2包import uiautomator2 as u2# 使用设备唯一标志码链接设备,其中9phqaetw是通过adb获取的设备标志码d = u2.connect("9phqaetw") # d = u2.connect() # 当前只有一个设备时可以用这个d.unlock() # 解锁屏幕x,y = 100,100d.click(x,y) # 点击屏幕坐标为 x,y 的点# 双击屏幕d.double_click(x,y)# 长按d.long_click(x,y)# 单机屏幕上字符为9的控件d(text="9").click()
例如我们写一个比较简单的解锁屏幕代码,假设锁屏密码是486570:
# 引用uiautomator2包import uiautomator2 as u2import time# 使用设备唯一标志码链接设备,其中9phqaetw是通过adb获取的设备标志码d = u2.connect("9phqaetw") # d = u2.connect() # 当前只有一个设备时可以用这个d.unlock() # 解锁屏幕time.sleep(2) # 等待手机反应2秒钟# 锁屏密码password = "486570"# 输入锁屏密码for c in password: d(text=c).click() time.sleep(0.3) # 间隔0.3秒单击一次屏幕
上述代码运行成功后,基本上就可以控制手机了。uiautomator2具备较多功能,在此不再赘述,百度具有较多资料。
weditor用于查看手机当前状态、用浏览器控制手机、调试手机,还可以实时的查找控件中的text属性以及其它属性值等等。
第一种打开方式是在命令窗口输入:
python -m weditor
第二种方式是在桌面创建快捷方式,在命令窗口输入:
weditor --shortcut
在桌面会自动创建一个名为WEditor的图标,双击即可。
打开weditor后会出现一个信息调试框,并且会自动打开默认浏览器跳转至调试页面,关闭调试框和浏览器页面其中任一个,weditor即被关闭。注意如果默认浏览器为IE的话,不知道支持与否,或可自行尝试。调试页面如下图所示:
在顶部可以切换静态调试还是实时,如果是实时情况下,则会跟随手机进行实时界面切换。
最左侧为手机界面;中间根据点选屏幕空间的不同,显示不同的控件属性;最右侧可使用Python代码进行书写和调试。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/123208.html
摘要:几天前我在考虑使用从发送消息。当应用程序构建时,我想到了使用手机本身自动发送消息的想法。我找到了一个命令行工具,它可以帮助人们在不接触手机的情况下控制手机。 几天前...
摘要:代码运行完成以后,微信被打开了。能不能像前面打开知乎一样,使用这个属性呢也行,也不行。滑动屏幕使用的命令为,滑动屏幕需要使用坐标信息。单独使用控制手机在 想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D、Cocos2dx-*、Android 原生 A...
摘要:首先要打开微信,进入到指定的群聊,识别微信红包执行抢红包的动作。是一款基于控件识别的自动化测试框架,目前支持原生原生微信小程序,也可以在其他引擎中自行接入来使用。 showImg(https://segmentfault.com/img/remote/1460000019438856); 目录:0 引言1 环境2 需求分析3 前置准备4 抢红包流程回顾5 代码梳理6 后记 0 引言 提...
阅读 2890·2021-11-23 09:51
阅读 3142·2021-11-12 10:36
阅读 3168·2021-09-27 13:37
阅读 3138·2021-08-17 10:15
阅读 2570·2019-08-30 15:55
阅读 2714·2019-08-30 13:07
阅读 777·2019-08-29 16:32
阅读 2627·2019-08-26 12:00