每天急匆匆赶地铁上班的时候总会一不小心就会忘记打卡,尤其是软件打卡,那有没有什么办法可以解决忘打卡的问题呢?今天给大家推荐一下一款神器,利用Python实现定时自动打卡。

1 前期工具准备

  • 不用说的Python

  • 一部24小时可以放公司的安卓手机或电脑安装模拟器

  • ADB工具

老规矩,需要打包好的软件关注小编,QQ群:721195303领取。

2 ADB的安装配置

去下载ADB安装包,安装后在环境变量Path中添加目录

2 UIautomator2的安装

# 安装 uiautomator2(PC端)
pip3 install -U uiautomator2

3 手机连接电脑

3.1 手机

如果使用的是手机,需要手机开启“开发者选项”模式,然后USB调试打开,将USB插入电脑

命令行输入

adb devices

检测手机是否连接成功

下面这样就说明成功了

然后运行

python3 -m uiautomator2 init

将atx-agent安装到手机

3.2模拟器

如果使用模拟器,在模拟器的设置中将ADB连接打开,同样在命令行输入adb devices检测是否连接成功,是用模拟器的话定位位置需要更改为公司要求打卡范围内,后续步骤同上

4 webitor安装使用

为了抓取控件更方便安装weditor

pip install --pre weditor

命令行输入

python -m weditor

在弹开的浏览器中进行操作

输入框中填入第三步得到的设备序列号,然后点击Connect,正常的话会有个绿色的叶子,应用控件的信息就需要在这里拿到了

5 代码开发

import uiautomator2 as u2
import time
from apscheduler.schedulers.blocking import BlockingSchedulerd = u2.connect_usb('b11b0fbe')
def click_text(self,str,sq=0): #对于无法直接点击的控件写了个函数path=d(text=str)[sq]x,y=path.center()d.click(x,y)
def click(card_ty):d.app_start("com.alibaba.android.rimet") # 启动应用time.sleep(5)d(text="工作台").click()time.sleep(3)d(text="考勤打卡").click()time.sleep(3)d(scrollable=True).fling.toEnd()click_text(d,card_ty,-1)time.sleep(3)d.screenshot("11.jpg")d.push("11.jpg", "/sdcard/0/11.jpg")d.app_stop("com.alibaba.android.rimet")send_info()
def send_info(): #将打卡信息截图利用小号发送给自己大号d.app_start("com.tencent.mm") # 启动应用time.sleep(5)click_text(d,"通讯录")click_text(d,"打卡")click_text(d,"发消息")time.sleep(2)d(description="更多功能按钮,已折叠").click()time.sleep(2)d.swipe(1000, 1450, 100, 1450)time.sleep(2)click_text(d,"文件")time.sleep(2)click_text(d,"微信文件",-1)click_text(d,"手机存储")click_text(d,"0")d(resourceId="com.tencent.mm:id/cvh").click()d(text="发送(1/9)").click()d(text="给朋友留言").click()d.send_keys("今日打卡记录,请注意查收", clear=True)d(text="发送").click()time.sleep(5)d.app_stop("com.tencent.mm")def job1():click("上班打卡")
def job2():click("下班打卡")
if __name__ == "__main__":sched = BlockingScheduler() #设置定时任务,周一至周五 上午8.50自动打上班卡,下午6.10自动打下班卡sched.add_job(job1, 'cron', day_of_week='mon-fri', hour='8',minute ='50')sched.add_job(job2, 'cron', day_of_week='mon-fri', hour='18',minute ='10')sched.start()
 

其中打卡部分以及微信发送打卡截图部分的代码,需要大家自己根据自己实际的情况做步骤调整。另外不习惯使用apscheduler库的话用系统自带的任务计划程序也是可以的,部分步骤效果如下:

企业微信打卡同理,大家可以自行研究,希望大家只是用于学习,不要挑战公司规章制度。

在这里还是要推荐下我自己建的Python学习群:721195303,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2021最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!

Python实现钉钉/企业微信自动打卡相关推荐

  1. Hamibot企业微信自动打卡签到——仅作记录

    Hamibot是基于Auto.js开发且开发者与用户均可免费使用.在写下这些文字时,看到有Auto.js Pro产品(目前并未了解Pro的功能). 如果你正想使用Hamibot开发一款出自己的脚本,建 ...

  2. 一款不用手动打卡,自动调起钉钉和企业微信上班打卡的App(更新篇)

    想要APK(安装包)的可以私聊我 我看到会第一时间发给你 (对此APP有其他想法的也欢迎沟通)介绍:进入app页面如果有需要悬浮窗权限,显示在其他应用的上层把他打开,总而言之有要权限的就打开就OK了, ...

  3. 【转】企业微信自动打卡设置

    企业微信没有打卡功能怎么办 现在企业微信是很多公司的首选的办公软件,其中打卡是员工不可缺少的一项任务,那么在企业微信上怎么打卡呢? 打卡功能是在企业微信工作台中使用的,如果员工打开企业微信手机端进入工 ...

  4. 工作党福利来了!Python实现钉钉/企业微信自动打卡

    每天急匆匆赶地铁上班的时候总会一不小心就会忘记打卡,尤其是软件打卡,那有没有什么办法可以解决忘打卡的问题呢?今天给大家推荐一下一款神器,利用Python实现定时自动打卡. 1 前期工具准备 不用说的P ...

  5. 企业微信自动打卡Python脚本

    企业微信是一个办公软件,提供了打卡功能.如果你想用 Python 脚本自动完成打卡,那么你需要做的事情是: 首先,你需要在企业微信中开启 API 权限.这样你就可以使用企业微信提供的 API 来操作打 ...

  6. 企业微信自动打卡插件开发

    今日科技快讯 近日中国多家VPN供应商已收到了来自苹果公司的通知,通知主要告知这些供应商和开发者,他们的软件将从中国区App Store下架.对此苹果方面表示,工信部今年早些时候宣布,所有提供VPN服 ...

  7. 企业微信自动打卡脚本

    写了一个自动企业微信打卡的dos脚本(自己要在手机上开启自动打开,新设备养几天就变常用设备了),搞个定时任务每天早上执行一下就行,废话不多说,上脚本内容 f: cd adb adb shell inp ...

  8. nuc企业微信自动打卡 autojs

    // appname launch("com.tencent.wework"); while(!textContains("工作台").exists()){ / ...

  9. uiautomator2+python实现企业微信自动打卡

    # 项目环境 python3.uiautomator2# 步骤(pip或者pip3) 1. 安装uiautomator2 pip install --upgrade --pre uiautomator ...

最新文章

  1. 黑客帝国真的可以!这100万个「活体人脑细胞」5分钟学会打游戏
  2. C++又一坑:动态链接库中的全局变量
  3. 让机器读懂视频:亿级淘宝视频背后的多模态AI算法揭秘
  4. Objects.equals(a, b)
  5. C语言判断某个字符串中 是否存在子字符串
  6. ViewFlipper的简单使用
  7. 笔录软件在linux系统,weblogic的在redhat linux下使用笔录
  8. openshift安装文档
  9. 【大数据分析】Spark介绍
  10. CMD窗口下强制删除文件
  11. php soap wsse,改变xmlns:wsse命名空间在使用Python Zeep的SOAP请求中
  12. 怎么用电脑屏幕录制功能录制游戏视频
  13. One Pixel Attack(对抗攻击) —— 使用差分进化算法寻找最优解
  14. 世界顶级黑客,都有哪些神仙操作?这篇文章带你了解一下!
  15. random.randint()用法
  16. Axure无法同时打开多个.rp文件
  17. idea中jar包关联源码
  18. 左手坐标系右手坐标系
  19. UA MATH524 复变函数1 复数及其基本性质
  20. Mock.js进行独立于后端的前端开发

热门文章

  1. NISP一级题库100题
  2. 定解问题(一)| 通解与特解 + 适定性 | 偏微分方程(五)
  3. Java实时报表统计查询慢_如何解决报表关联计算中的性能问题
  4. 阴阳师夜影诡谈第二天阵容怎么配
  5. 个人永久性免费-Excel催化剂功能第34波-提取中国身份证信息、农历日期转换相关功能...
  6. Hadoop3.x完全分布式运行模式配置
  7. android recovery下使用adb出现device offline问题
  8. 搜索引擎涉及的数据结构
  9. AI 人工智能 干货分享
  10. 企业级小架构设计部署实现-docker变种(一)负载均衡网站