Python實(shí)現(xiàn)釘釘/企業(yè)微信自動(dòng)打卡的示例代碼
每天急匆匆趕地鐵上班的時(shí)候總會(huì)一不小心就會(huì)忘記打卡,尤其是軟件打卡,那有沒(méi)有什么辦法可以解決忘打卡的問(wèn)題呢?今天給大家推薦一下一款神器,利用Python實(shí)現(xiàn)定時(shí)自動(dòng)打卡。
1 前期工具準(zhǔn)備 不用說(shuō)的Python 一部24小時(shí)可以放公司的安卓手機(jī)或電腦安裝模擬器 ADB工具2 ADB的安裝配置去下載ADB安裝包,安裝后在環(huán)境變量Path中添加目錄
2.1 UIautomator2的安裝
# 安裝 uiautomator2(PC端)pip3 install -U uiautomator23 手機(jī)連接電腦
3.1 手機(jī)
如果使用的是手機(jī),需要手機(jī)開(kāi)啟“開(kāi)發(fā)者選項(xiàng)”模式,然后USB調(diào)試打開(kāi),將USB插入電腦
命令行輸入
adb devices
檢測(cè)手機(jī)是否連接成功
下面這樣就說(shuō)明成功了
然后運(yùn)行
python3 -m uiautomator2 init
將atx-agent安裝到手機(jī)
3.2模擬器
如果使用模擬器,在模擬器的設(shè)置中將ADB連接打開(kāi),同樣在命令行輸入adb devices檢測(cè)是否連接成功,是用模擬器的話定位位置需要更改為公司要求打卡范圍內(nèi),后續(xù)步驟同上
4 webitor安裝使用為了抓取控件更方便安裝weditor
pip install --pre weditor
命令行輸入
python -m weditor
在彈開(kāi)的瀏覽器中進(jìn)行操作
輸入框中填入第三步得到的設(shè)備序列號(hào),然后點(diǎn)擊Connect,正常的話會(huì)有個(gè)綠色的葉子,應(yīng)用控件的信息就需要在這里拿到了
5 代碼開(kāi)發(fā)import uiautomator2 as u2import timefrom apscheduler.schedulers.blocking import BlockingScheduler d = u2.connect_usb(’b11b0fbe’)def click_text(self,str,sq=0): #對(duì)于無(wú)法直接點(diǎn)擊的控件寫(xiě)了個(gè)函數(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') # 啟動(dòng)應(yīng)用 time.sleep(5) d(text='工作臺(tái)').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(): #將打卡信息截圖利用小號(hào)發(fā)送給自己大號(hào) d.app_start('com.tencent.mm') # 啟動(dòng)應(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ī)存儲(chǔ)') click_text(d,'0') d(resourceId='com.tencent.mm:id/cvh').click() d(text='發(fā)送(1/9)').click() d(text='給朋友留言').click() d.send_keys('今日打卡記錄,請(qǐng)注意查收', 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è)置定時(shí)任務(wù),周一至周五 上午8.50自動(dòng)打上班卡,下午6.10自動(dòng)打下班卡 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庫(kù)的話用系統(tǒng)自帶的任務(wù)計(jì)劃程序也是可以的,部分步驟效果如下:
企業(yè)微信打卡同理,大家可以自行研究,希望大家只是用于學(xué)習(xí),不要挑戰(zhàn)公司規(guī)章制度。
到此這篇關(guān)于Python實(shí)現(xiàn)釘釘/企業(yè)微信自動(dòng)打卡的示例代碼的文章就介紹到這了,更多相關(guān)Python 釘釘/企業(yè)微信自動(dòng)打卡內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. PHP字符串前后字符或空格刪除方法介紹2. css進(jìn)階學(xué)習(xí) 選擇符3. XML入門(mén)的常見(jiàn)問(wèn)題(一)4. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法5. Laravel操作session和cookie的教程詳解6. jsp實(shí)現(xiàn)登錄界面7. Echarts通過(guò)dataset數(shù)據(jù)集實(shí)現(xiàn)創(chuàng)建單軸散點(diǎn)圖8. html小技巧之td,div標(biāo)簽里內(nèi)容不換行9. 淺談SpringMVC jsp前臺(tái)獲取參數(shù)的方式 EL表達(dá)式10. 解析原生JS getComputedStyle
