前言
眾所周知因為疫情的原因大家都沒有辦法上學和上班,“釘釘”這個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,群內會有不定期的分享測試資料。
如果文章對你有幫助,麻煩伸出發財小手點個贊,感謝您的支持,你的點贊是我持續更新的動力。