钉钉自动打卡-智能填表

  • 前言
  • 准备工作
  • 开始操作
  • 注意事项
  • 整合和进一步规范与示例总结
  • 学习总结


前言

有时候凌晨12点后钉钉不能打卡而1-2点又能打卡了,早上又起不来,很尴尬.

屁话少说,直接上手。

准备工作

  1. adb下载
    下载adb
  2. 推荐python官网下载 3.7版本
    (最新版本python3.8.4,文件程序内不能修改,权限不够修改麻烦无响应,推荐下载3.7,任意修改文本代码)
  3. 配置python文件-模拟手机点击所需
    Pyinstaller-3.6文件
    链接:提取码y5qu
  4. 手机开发者模式下USB调试开启
    此步很重要,不会的自行百度.
  5. python文件转化成.exe文件,时间触发器里面自定义触发设置.
    此项在注意事项会说明

开始操作

<1>. adb环境配置 -详细链接如下

adb配置详细教程

[1].关于adb无线连接整合( 无需USB线连接 )

cmd命令依次输入如下:

  1. adb connect (这里填写手机的IP地址,通常192开头)
  2. adb tcpip 5555 //这里需要用到网络协议端口5555
  3. adb connnect (还是手机IP地址)
  4. adb devices //查看连接是否成功
示例如图:

python 钉钉自动打卡 python 如何钉钉自动打卡_python 钉钉自动打卡

<2>. Pyinstaller 的配置

这步是自我结合整理,简便一点.

[1]. cmd(win+R 输入cmd)命令进入Pyinstaller 3.6文件地址(文件就放C盘即可)

python 钉钉自动打卡 python 如何钉钉自动打卡_python 钉钉自动打卡_02


[2]. 在此文件下配置好文件回车

python 钉钉自动打卡 python 如何钉钉自动打卡_python_03


[3].等待命令配置完成即可(过程比较长)

python 钉钉自动打卡 python 如何钉钉自动打卡_触发器_04

<3>. python 模拟点击代码的编写

为了方便使用 这里直接借鉴我的代码

# 引入time包
import os
import time
def AutoDing():
    print(os.system('adb shell input keyevent 224'))    # 打开电源键
    time.sleep(1)
    print(os.system('adb shell input swipe 780 1888 780 800'))      # 上滑解锁
    #这里我去掉了手机密码设置,方便工作,如果开屏想让其完成解锁操作,推荐设置数字密码
    time.sleep(1)                     #---time.sleep(1)代表延时1秒钟,因为进入应用有等待时间需缓冲
    #------从下面开始 每一个代码里面的坐标,对应进入钉钉应用后每一个UI交互的按钮来实现模拟点击功能----
    print(os.system('adb shell input tap 539 1104 '))   
    # 点击钉钉应用 这里 539 1104 代表钉钉应用位置 每个手机其位置不尽相同 关于位置坐标后面说明
    time.sleep(3)
    #例如 532 2105 则对应进入钉钉后的工作台按钮 x=532 y=2105 原理上每台手机这些按钮坐标与我的可以对应上
    print(os.system('adb shell input tap 532 2105 '))    
    time.sleep(2)
    print(os.system('adb shell input tap 134 940 '))    
    time.sleep(2)
    print(os.system('adb shell input tap 570 2082 '))    
    time.sleep(1.5)
    print(os.system('adb shell input tap 848 248 '))    
    time.sleep(1)
    print(os.system('adb shell input tap 530 1070 '))    
    time.sleep(1)
    print(os.system('adb shell input tap 166 1500 '))    
    time.sleep(1)
    for i in range(4):
        print(os.system('adb shell input swipe 780 1888 780 800'))      # 上滑进入确认按钮
        time.sleep(0.25)
    print(os.system('adb shell input tap 508 2052 '))   # 点击考勤打卡
    time.sleep(1)
    print(os.system('adb shell am force-stop com.alibaba.android.rimet'))
   
# 执行
AutoDing()

注意事项

<1>. 如何实现交互位置的确认:

[1]. 进入开发者模式,打开指针位置,如图

python 钉钉自动打卡 python 如何钉钉自动打卡_android_05

[2].点击目标应用or交互按钮

python 钉钉自动打卡 python 如何钉钉自动打卡_python_06


这里我的QQ坐标就是 x=652,y=2027,完成查找.

[3].设置密码模拟解锁同上,原理相同(只需添加几行代码即可),滑动解锁可能相对密码解锁复杂

<2>.如何将写好的python文件转换成可执行文件?

这步也是自我整合,方便简洁.(由于本人pc环境?等复杂问题,在其他pc端完成了这项操作,得以解决)

  1. pip install pyinstaller //安装打包插件(记得这一步我在开始工作的第2步就安装了? 哈哈 有待学习)
  2. python pyinstaller.py -F (+目标文件名称) //这里在运行命令时,最好先进入到目标文件地址下
  3. 完成操作后进入目标文件下的dist文件,对应可执行(.exe)文件即出现.

上面的几项操作,注意第2步的操作.若有模糊,详见此: 请点击

后续更新
当使用pip命令下载配置文件失败时,可使用如下命令

pip3 install pyinstaller //pip 为python2代命令

若还是下载失败请点此处 <3>.如何设置触发器设置?

整合与规范

整合和进一步规范与示例总结

<1>.触发器相关:触发器如何设置

<2>.效果示例如下

学习总结

1.掌握和理解安卓开发工具adb命令的初步使用并加以应用.
2.了解关于python配置文件的规范使用
3.win10触发器\电脑无线连接手机等有趣发现