溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

利用Python怎么實(shí)現(xiàn)一個企業(yè)微信自動打卡功能

發(fā)布時間:2021-02-03 10:02:19 來源:億速云 閱讀:1140 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章為大家展示了利用Python怎么實(shí)現(xiàn)一個企業(yè)微信自動打卡功能,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

工具準(zhǔn)備

  • 不用說的Python

  • 一部24小時可以放公司的安卓手機(jī)或電腦安裝模擬器

  • ADB工具

2 ADB的安裝配置

去下載ADB安裝包,安裝后在環(huán)境變量Path中添加目錄

利用Python怎么實(shí)現(xiàn)一個企業(yè)微信自動打卡功能

2.1 UIautomator2的安裝

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

3 手機(jī)連接電腦

3.1 手機(jī)

如果使用的是手機(jī),需要手機(jī)開啟“開發(fā)者選項(xiàng)”模式,然后USB調(diào)試打開,將USB插入電腦

命令行輸入

adb devices

檢測手機(jī)是否連接成功

下面這樣就說明成功了

利用Python怎么實(shí)現(xiàn)一個企業(yè)微信自動打卡功能

然后運(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

命令行輸入

python -m weditor

在彈開的瀏覽器中進(jìn)行操作

利用Python怎么實(shí)現(xiàn)一個企業(yè)微信自動打卡功能

輸入框中填入第三步得到的設(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ù)計(jì)劃程序也是可以的,部分步驟效果如下: 

利用Python怎么實(shí)現(xiàn)一個企業(yè)微信自動打卡功能

上述內(nèi)容就是利用Python怎么實(shí)現(xiàn)一個企業(yè)微信自動打卡功能,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI