每天急匆匆趕地鐵上班的時候總會一不小心就會忘記打卡,尤其是軟件打卡,那有沒有什么辦法可以解決忘打卡的問題呢?今天給大家推薦一下一款神器,利用Python實(shí)現(xiàn)定時自動打卡。
1 前期工具準(zhǔn)備
- 不用說的Python
- 一部24小時可以放公司的安卓手機(jī)或電腦安裝模擬器
- ADB工具
2 ADB的安裝配置
去下載ADB安裝包,安裝后在環(huán)境變量Path中添加目錄
![](/d/20211017/420b6dd25f89b6a21c27f701d8a09410.gif)
2.1 UIautomator2的安裝
# 安裝 uiautomator2(PC端)
pip3 install -U uiautomator2
3 手機(jī)連接電腦
3.1 手機(jī)
如果使用的是手機(jī),需要手機(jī)開啟“開發(fā)者選項(xiàng)”模式,然后USB調(diào)試打開,將USB插入電腦
命令行輸入
檢測手機(jī)是否連接成功
下面這樣就說明成功了
![](/d/20211017/98e7aa87a540b3fbddd21977c5d7011b.gif)
然后運(yùn)行
python3 -m uiautomator2 init
將atx-agent安裝到手機(jī)
3.2模擬器
如果使用模擬器,在模擬器的設(shè)置中將ADB連接打開,同樣在命令行輸入adb devices
檢測是否連接成功,是用模擬器的話定位位置需要更改為公司要求打卡范圍內(nèi),后續(xù)步驟同上
4 webitor安裝使用
為了抓取控件更方便安裝weditor
pip install --pre weditor
命令行輸入
在彈開的瀏覽器中進(jìn)行操作
![](/d/20211017/ec8c2676dec0027989361c219176c3ce.gif)
輸入框中填入第三步得到的設(shè)備序列號,然后點(diǎn)擊Connect,正常的話會有個綠色的葉子,應(yīng)用控件的信息就需要在這里拿到了
5 代碼開發(fā)
import uiautomator2 as u2
import time
from apscheduler.schedulers.blocking import BlockingScheduler
d = u2.connect_usb('b11b0fbe')
def click_text(self,str,sq=0): #對于無法直接點(diǎn)擊的控件寫了個函數(shù)
path=d(text=str)[sq]
x,y=path.center()
d.click(x,y)
def click(card_ty):
d.app_start("com.alibaba.android.rimet") # 啟動應(yīng)用
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(): #將打卡信息截圖利用小號發(fā)送給自己大號
d.app_start("com.tencent.mm") # 啟動應(yīng)用
time.sleep(5)
click_text(d,"通訊錄")
click_text(d,"打卡")
click_text(d,"發(fā)消息")
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,"手機(jī)存儲")
click_text(d,"0")
d(resourceId="com.tencent.mm:id/cvh").click()
d(text="發(fā)送(1/9)").click()
d(text="給朋友留言").click()
d.send_keys("今日打卡記錄,請注意查收", clear=True)
d(text="發(fā)送").click()
time.sleep(5)
d.app_stop("com.tencent.mm")
def job1():
click("上班打卡")
def job2():
click("下班打卡")
if __name__ == "__main__":
sched = BlockingScheduler() #設(shè)置定時任務(wù),周一至周五 上午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()
其中打卡部分以及微信發(fā)送打卡截圖部分的代碼,需要大家自己根據(jù)自己實(shí)際的情況做步驟調(diào)整。另外不習(xí)慣使用apscheduler庫的話用系統(tǒng)自帶的任務(wù)計劃程序也是可以的,部分步驟效果如下:
![](/d/20211017/36c6466537186fe64ac018c2df8c780e.gif)
企業(yè)微信打卡同理,大家可以自行研究,希望大家只是用于學(xué)習(xí),不要挑戰(zhàn)公司規(guī)章制度。
到此這篇關(guān)于Python實(shí)現(xiàn)釘釘/企業(yè)微信自動打卡的示例代碼的文章就介紹到這了,更多相關(guān)Python 釘釘/企業(yè)微信自動打卡內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- python實(shí)現(xiàn)企業(yè)微信定時發(fā)送文本消息的實(shí)例代碼
- python實(shí)現(xiàn)企業(yè)微信定時發(fā)送文本消息的示例代碼
- python向企業(yè)微信發(fā)送文字和圖片消息的示例
- Python開發(fā)企業(yè)微信機(jī)器人每天定時發(fā)消息實(shí)例
- Python實(shí)現(xiàn)企業(yè)微信機(jī)器人每天定時發(fā)消息實(shí)例
- 使用Python實(shí)現(xiàn)企業(yè)微信的自動打卡功能
- 通過shell+python實(shí)現(xiàn)企業(yè)微信預(yù)警
- 教你利用python實(shí)現(xiàn)企業(yè)微信發(fā)送消息