幾行python代碼實現釘釘自動打卡,網友:終於告別缺勤了


前言

眾所周知因為疫情的原因大家都沒有辦法上學和上班,“釘釘”這個app起到了重大的作用。學校為了學生成績開啟“釘釘”之路。老師也成一個“合格”的主播,感謝XXX童鞋的禮物、666扣起來

老師為了營造一個好的學習環境,直播風格也是獨具一格。

釘釘到底有什么功能為大眾所用呢?

為什么要寫釘釘打卡?

其實我是個早起早睡的乖寶寶,所以我是用不上的,至於為什么要寫這個腳本,其實是因為我在加班,工作干完了,還有10分鍾可以下班,那就利用10分鍾學(裝)個(個)習(B)。廢話就不說了, 快下班了。直接開干.

說下思路吧

用python調用adb命令通過x,y點位來操作手機,在寫個定時器就好了,簡單吧。10分鍾夠了……

准備環境

  • Android 手機一部(我用的華為榮耀10)
  • adb 工具包,下載安裝包並配置環境變量
  • python3環境

安裝adb 配置環境變量

下載adb : 網上太多了,找一個就好了,我要和時間賽跑 (> _ <……)

配置環境變量: 這個是基礎,python環境配置我都不打算在這里說的,adb配置好adb --version 檢查下

設置手機

數據線連接電腦 ,手機打開開發者模式,輸入 adb devices,出現下圖就是連接上手機了

手機進行設置,在開發者模式里找到指針位置選項,並打開,是為了獲取點位信息的

寫腳本

在寫之前需要了解adb常用命令

  • a,adb shell input keyevent 224 # 電源
  • b,adb shell input tap 647 1685 # 點擊事件
  • c,adb shell input swipe 747 1413 747 323 # 滑動事件
  • d,adb shell am force-stop com.alibaba.android.rimet 關掉釘釘進程

導入需要用的包

import os  
import time  

手動操作一遍沒記錄每一步的x,y的點位,再用python寫出來

def daka():   print(os.system('adb shell input keyevent 224')) # 打開電源鍵   time.sleep(3)   print(os.system('adb shell input tap 647 1685 ')) # 點擊釘釘應用位置   time.sleep(3)   print(os.system('adb shell input tap 528 2190 ')) # 點擊釘釘菜單   time.sleep(3)   print(os.system('adb shell input swipe 747 1413 747 323')) # 上滑找考勤打卡程序   time.sleep(3)   print(os.system('adb shell input tap 910 1011 ')) # 點擊考勤打卡   time.sleep(3)   """  

這個就是要寫打開的操作了,我不能打卡,我還要加班,省的人事小姐姐找我喝咖啡,很簡單,這一步自己寫吧,**我跳過**

"""    print(os.system('adb shell am force-stop com.alibaba.android.rimet')) # 操作打卡完成后關閉釘釘應用    pass  

怎么查看包名

adb shell am monitor 然后在手機打開應用即可  

截圖真費時間,感覺時間快不夠了,要不我一會錄屏吧…………額 好像已經搞定了 …………

隨便寫個定時器吧,你們可以自己優化下定時器哦,我寫的比較糙咯……

""" 定義個返回秒的函數"""  
def sleeptime(hour, min, sec):   return hour * 3600 + min * 60 + sec   # 設置自動執行間隔時間,我這里設置時間,啊!現在是凌晨12點整了,早上9點上班那我就先讓下次是8小時候執行吧   second = sleeptime(8, 0, 0)   # 來個暴力的死循環   while 1 == 1:   # 延時   time.sleep(second)   # 執行   daka()   來個代碼總結   # -*- coding: utf-8 -*-   '''   @Created on 2019/12/20   @Author : Pa Lengderen   '''   # 引入time包   import os   import time   def daka():   print(os.system('adb shell input keyevent 224')) # 電源鍵   time.sleep(3)   print(os.system('adb shell input tap 647 1685 ')) # 點擊釘釘應用   time.sleep(3)   print(os.system('adb shell input tap 528 2190 ')) # 點擊菜單   time.sleep(3)   print(os.system('adb shell input swipe 747 1413 747 323')) # 上滑   time.sleep(3)   print(os.system('adb shell input tap 910 1011 ')) # 點擊考勤打卡   time.sleep(3)   print(os.system('adb shell am force-stop com.alibaba.android.rimet'))   pass   # 函數定義   def sleeptime(hour, min, sec):   print(hour * 3600 + min * 60 + sec)   return hour * 3600 + min * 60 + sec   # 設置自動執行間隔時間,我這里設置的2s   second = sleeptime(0, 0, 10)   # 死循環   while 1 == 1:   # 延時    time.sleep(second) # 執行   daka()  

在上個手機錄屏

手動錄屏

呃呃呃(⊙﹏⊙) ,突然發現釘釘的個人信息太多了,我要食言了!!!尷尬


 

如果對軟件測試、接口測試、自動化測試、技術同行、持續集成、面試經驗交流。感興趣可以進到893694563,群內會有不定期的分享測試資料。
如果文章對你有幫助,麻煩伸出發財小手點個贊,感謝您的支持,你的點贊是我持續更新的動力。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM