Python实现钉钉/企业微信自动打卡的示例代码
作者:程序媛柚柚 发布时间:2022-02-18 21:54:02
标签:Python,钉钉,企业微信,自动打卡
每天急匆匆赶地铁上班的时候总会一不小心就会忘记打卡,尤其是软件打卡,那有没有什么办法可以解决忘打卡的问题呢?今天给大家推荐一下一款神器,利用Python实现定时自动打卡。
1 前期工具准备
不用说的Python
一部24小时可以放公司的安卓手机或电脑安装模拟器
ADB工具
2 ADB的安装配置
去下载ADB安装包,安装后在环境变量Path中添加目录
2.1 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 BlockingScheduler
d = 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库的话用系统自带的任务计划程序也是可以的,部分步骤效果如下:
企业微信打卡同理,大家可以自行研究,希望大家只是用于学习,不要挑战公司规章制度。
来源:https://blog.csdn.net/aaahtml/article/details/112789525
0
投稿
猜你喜欢
- <html> <head> <script type="text/javascript"&
- 先简单做个分享,有时间再补一个完整的用例self.textEdit = QtGui.QTextEdit(slef)1.设置背景颜色self.
- 学习目的 掌握如何用ADO.NET插入新的记录 我们学得好快,今天做一个简易的新闻发布网页,可以说是个演示型的,只是让大家能理插入数据的最主
- 直方图,又称质量分布图,是一种统计报告图,由一系列高度不等的纵条或线段表示数据分布情况。用横轴表示数据类型,纵轴表示分布情况。直方图是数值数
- 一、logging日志模块等级常见log级别从高到低:CRITICAL 》ERROR 》WARNING 》INFO 》DEBUG,默认等级为
- 需求: 一台机器上有多个网卡, 如何访问指定的 URL 时使用指定的网卡发送数据呢?$ curl --interface eth0 www.
- 一张表(ColumnTable)的结构如下图所示当前需要实现的功能:通过Number的值为67来获取当前的节点ID、父节点ID递归实现SQL
- 本文实例讲述了Python基于正则表达式实现文件内容替换的方法。分享给大家供大家参考,具体如下:最近因为有一个项目需要从普通的服务器移植到S
- 这篇文章主要介绍了Python读取表格类型文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 一. 想要实现的效果新建文件夹将自编模块集中管理可在其它py文件内import 自编模块,像import第三方库一样二. 实现的方法步骤1:
- 代码简单,直接看代码吧:import socketimport threadingimport re#import Tkinterdef s
- window.onload=function() {&
- 要实现的SQL查询很原始:要求从第一个表进行查询得到第二个表格式的数据,上网查询之后竟然能写出下面的SQL:代码如下:select * fr
- 首先,了解下原理。1,提供文本框进行查询内容的输入2,将查询信息提交页面程序处理3,程序页主要作用:接受查询信息,根据此信息调用特定的SQL
- 静态页面是蜘蛛喜欢的,会得到蜘蛛经常光顾的,以至于网站上的内容会得到搜索引擎更多的收录。这里介绍一个asp伪静态的程序实现方法数据库是acc
- 使用 str.split() 方法将字符串转换为数组,例如 array = string.split(',')。 str.s
- 示意图:html:{# 用户管理 #} <div id="userManageDiv" style=&
- (1)Flush的内容至少要有256字节经过反复的测试,我得出一个结论。就是flush的内容至少要有256字节。也就是只有编译产生了至少25
- 前言:大家好,今天和大家分享自己总结的6个常用的 Python 数据处理代码,对于经常处理数据的coder最好熟练掌握。1、选取有空值的行在
- 一、背景我们日常测试中存在大量重复的造数操作,且流程较长,为了提升测试效率,我们搭建了数据构造平台。平台采用了前端 + 脚本分离的形式,数据