Pythonは、DingTalk /エンタープライズWeChat自動クロッキングを実現します[プロテストで利用可能]

毎日急いで地下鉄に通うと、特にソフトウェアの場合、誤ってチェックインするのを忘れてしまいますが、チェックインを忘れるという問題を解決する方法はありますか?今日は、Pythonを使用してタイミングと自動クロッキングを実現するアーティファクトをすべての人に推奨したいと思います。

1予備的なツールの準備

  • 言うまでもなくPython

  • エミュレータをインストールするために会社のAndroid携帯電話またはコンピュータに24時間を置くことができます

  • ADBツール

古いルールでは、編集者、QQグループ:721195303に注意を払うためにパッケージ化されたソフトウェアが必要です。

2ADBのインストールと構成

ADBインストールパッケージのダウンロードに移動し、インストール後に環境変数Pathにディレクトリを追加します

画像

2UIautomator2のインストール

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

3電話をコンピューターに接続します

3.1モバイル

携帯電話を使用している場合は、携帯電話の「開発者向けオプション」モードをオンにしてから、USBデバッグをオンにして、USBをコンピューターに挿入する必要があります。

コマンドライン入力

adb devices

電話が正常に接続されているかどうかを確認します

以下は成功を示しています

画像

次に実行します

python3 -m uiautomator2 init

atx-agentを電話にインストールします

3.2シミュレータ

シミュレータを使用する場合は、シミュレータの設定でADB接続を開き、コマンドラインを入力しadb devicesて接続が成功するかどうか確認します。シミュレータを使用する場合は、位置決め位置を会社の必要なパンチ範囲に変更する必要があります。手順は上記と同じです

4ウェビターのインストールと使用

weditorをインストールするためにより便利なコントロールをつかむために

pip install --pre weditor

コマンドライン入力

python -m weditor

ポップアップブラウザで操作する

画像

3番目の手順で取得したデバイスのシリアル番号を入力ボックスに入力し、[接続]をクリックします。通常は緑色の葉が表示されるため、ここでアプリケーション制御情報を取得する必要があります。

5コード開発

import uiautomator2 as u2
import time
from apscheduler.schedulers.blocking import BlockingScheduler

d = u2.connect_usb('b11b0fbe')
def click_text(self,str,sq=0): #对于无法直接点击的控件写了个函数
   path=d(text=str)[sq]
   x,y=path.center()
   d.click(x,y)
def click(card_ty):
   d.app_start("com.alibaba.android.rimet") # 启动应用
   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(): #将打卡信息截图利用小号发送给自己大号
   d.app_start("com.tencent.mm") # 启动应用
   time.sleep(5)
   click_text(d,"通讯录")
   click_text(d,"打卡")
   click_text(d,"发消息")
   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,"手机存储")
   click_text(d,"0")
   d(resourceId="com.tencent.mm:id/cvh").click()
   d(text="发送(1/9)").click()
   d(text="给朋友留言").click()
   d.send_keys("今日打卡记录,请注意查收", clear=True)
   d(text="发送").click()
   time.sleep(5)
   d.app_stop("com.tencent.mm")

def job1():
   click("上班打卡")
def job2():
   click("下班打卡")    
if __name__ == "__main__":
   sched = BlockingScheduler() #设置定时任务,周一至周五 上午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()
 

チェックイン部分のコードとWeChatから送信されたスクリーンショットでは、実際の状況に応じて手順を調整する必要があります。さらに、apschedulerライブラリの使用に慣れていない場合は、システムに付属のタスクスケジューラを使用することもできます。いくつかの手順の効果は次のとおりです。

 

画像

 

企業のWeChatチェックインについても同じことが言えます。独自の調査を行うことができます。学習にのみ使用し、会社の規則や規制に異議を唱えないでください。

自分で作成したPython学習グループ:721195303を引き続きお勧めします。全員がPythonを学習しています。Pythonを学習したい、または学習している場合は、ぜひ参加してください。誰もがソフトウェア開発パーティーであり、最新のPythonの高度な資料のコピーや、2021年に私が編集したゼロベースの教育など、随時(Pythonソフトウェア開発に関連するもののみ)。高度でPythonに興味のある友人を歓迎します。

おすすめ

転載: blog.csdn.net/m0_55479420/article/details/114587566