体温打卡自动化
背景:
相信小伙伴们疫情在家很苦恼,每天都被各种催打卡,但是有了python一切变得不一样了,运行程序即可帮助你完成打卡,是不是很心动呢?跟我一起来看看吧
准备部分:
1、python 3.7开发环境
2、一台安卓手机并且下载了adb包
adb包如果成功下载会有如下界面(这个adb在网上百度即可下载)
3、手机打开开发这模式并且点击允许usb调试(目前只有安卓手机可以实现该项目功能)
4、用数据线将手机和电脑连接
准备完成之后我们话不多说先展示代码
import os
import time
#os.system("adb shell screencap -p /sdcard/screen1.png")#老版本截图先保存在设备端
#os.system("adb pull /sdcard/screen1.png")#保存
def click(x,y):
os.system(("adb shell input tap {} {}").format(x,y))
def openApp():
os.system("adb shell am start com.tencent.mm/com.tencent.mm.ui.LauncherUI")
def step_one():
time.sleep(0.2)
click(300,500)
print("正在打开打卡公众号")
time.sleep(0.3)
click(300,400)
print("正在打开一站式服务大厅")
time.sleep(0.3)
click(600,2300)
print("正在打开办事大厅")
time.sleep(3)
print("正在选取健康信息填报")
click(400,1467)
time.sleep(1)
print("正在点击我要办理")
click(551, 2325)
def step_two():#滚动页面并获取两个文本框坐标
os.system("adb shell input swipe 250 2200 250 250")
def step_three(str1):#将信息插入文本框并点击确定 (470,1100) (470,1200) (470,2314)
click(470,1100)
time.sleep(0.2)
os.system("adb shell input text "+str1)
time.sleep(0.5)
click(470,1200)
time.sleep(0.2)
os.system("adb shell input text " + str1)#(1000,1620)9
click(1000,1620)
time.sleep(0.1)
click(1000, 1620)
time.sleep(0.3)
click(470,2314)
time.sleep(0.2)
click(800,1460)
if __name__ == '__main__':
print("正在检索手机微信图标")
openApp()
print("微信已经打开")
step_one()
time.sleep(1.5)
click(854,1170)#因为我已经提交过了,这一行是点击确定重新提交
print("正在向下滑动至底部")
step_two()
print("正在将体温填入相应文本框 ")
step_three("36.5")
print("打卡成功")
注意!!!!
代码展示完了但并不能直接照搬哦,因为我们的点击位置很多是写死的,所以小伙伴们要根据自己的打卡界面来设置哦。
代码具体解释
1、
#os.system("adb shell screencap -p /sdcard/screen1.png")#老版本截图先保存在设备端
#os.system("adb pull /sdcard/screen1.png")#保存
这两行注释掉的代码使用来截屏和保存图片的,因为我们要根据图片来获取我们想要点击的像素点
2、
def click(x,y):
os.system(("adb shell input tap {} {}").format(x,y))
这是一个点击函数,给出x,y的值即可在手机上模拟点击
3、
def openApp():
os.system("adb shell am start com.tencent.mm/com.tencent.mm.ui.LauncherUI")
这个函数用来打开手机的微信,好处是不管你的微信放在你手机的那个界面,都可以通过此函数直接打开
4、
def step_one():
time.sleep(0.2)
click(300,500)
print("正在打开打卡公众号")
time.sleep(0.3)
click(300,400)
print("正在打开一站式服务大厅")
time.sleep(0.3)
click(600,2300)
print("正在打开办事大厅")
time.sleep(3)
print("正在选取健康信息填报")
click(400,1467)
time.sleep(1)
print("正在点击我要办理")
click(551, 2325)
这是我逐次打开打卡见面所需要的点击步骤,我们可以根据自己的打卡软件设置点击位置
5、
def step_two():#滚动页面并获取两个文本框坐标
os.system("adb shell input swipe 250 2200 250 250")
这个是用来滑动界面的,因为信息填写的时候可能会用到
6、
def step_three(str1):#将信息插入文本框并点击确定 (470,1100) (470,1200) (470,2314)
click(470,1100)
time.sleep(0.2)
os.system("adb shell input text "+str1)
time.sleep(0.5)
click(470,1200)
time.sleep(0.2)
os.system("adb shell input text " + str1)#(1000,1620)9
click(1000,1620)
time.sleep(0.1)
click(1000, 1620)
time.sleep(0.3)
click(470,2314)
time.sleep(0.2)
click(800,1460)
这段代码是用来确定文本框的位置并且向文本框里输入内容
7、最后就是主函数部分,依次执行上述函数节课
小伙伴们可以自己动手尝试一下呀!奥利给。最后附上演示效果
有了Python加上adb包 再也不用嫌打卡麻烦了