体温打卡自动化

背景:

相信小伙伴们疫情在家很苦恼,每天都被各种催打卡,但是有了python一切变得不一样了,运行程序即可帮助你完成打卡,是不是很心动呢?跟我一起来看看吧

准备部分:

1、python 3.7开发环境

2、一台安卓手机并且下载了adb包

adb包如果成功下载会有如下界面(这个adb在网上百度即可下载)

3、手机打开开发这模式并且点击允许usb调试(目前只有安卓手机可以实现该项目功能)

4、用数据线将手机和电脑连接

python实现自动打卡 python自动打板_文本框


python实现自动打卡 python自动打板_android_02


python实现自动打卡 python自动打板_python_03


准备完成之后我们话不多说先展示代码

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包 再也不用嫌打卡麻烦了