Quando você corre todos os dias para o metrô para o trabalho, sempre se esquece de fazer o check-in por acidente, principalmente com o software.Há alguma maneira de resolver o problema de esquecer de fazer o check-in? Hoje, gostaria de recomendar um artefato a todos, que usa Python para realizar a temporização e o relógio automático.
1 Preparação preliminar da ferramenta
-
Desnecessário dizer Python
-
Um 24 horas pode ser colocado no telefone Android da empresa ou computador para instalar o emulador
-
Ferramentas ADB
As regras antigas, você precisa de um pacote de software para prestar atenção ao editor, grupo QQ: 721195303 para receber.
2 Instalação e configuração do ADB
Vá para baixar o pacote de instalação do ADB, adicione o diretório na variável de ambiente Caminho após a instalação
2 Instalação do UIautomator2
# 安装 uiautomator2(PC端) pip3 install -U uiautomator2
3 Conecte o telefone ao computador
3.1 Móvel
Se estiver usando um telefone celular, você precisa ativar o modo "Opções do desenvolvedor" no telefone celular, ativar a depuração de USB e inserir o USB no computador
Entrada de linha de comando
adb devices
Verifique se o telefone está conectado com sucesso
O seguinte mostra o sucesso
Então corra
python3 -m uiautomator2 init
Instale o agente atx no telefone
3.2 Simulador
Se você usar o simulador, abra a conexão ADB nas configurações do simulador e digite a linha de comando para adb devices
verificar se a conexão foi bem-sucedida. Se o simulador for usado, o local de posicionamento precisa ser alterado para o intervalo de punção exigido pela empresa. as etapas são as mesmas acima
4 instalação e uso do webitor
A fim de agarrar o controle mais conveniente para instalar o weditor
pip install --pre weditor
Entrada de linha de comando
python -m weditor
Operar no navegador pop-up
Preencha o número de série do dispositivo obtido na terceira etapa na caixa de entrada e clique em Conectar. Normalmente, haverá uma folha verde e as informações de controle do aplicativo devem ser obtidas aqui
5 desenvolvimento de código
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()
O código para a parte de check-in e as capturas de tela enviadas pelo WeChat exigem que você ajuste as etapas de acordo com sua situação real. Além disso, se você não está acostumado a usar a biblioteca apscheduler, também é possível usar o agendador de tarefas que vem com o sistema.Os efeitos de alguns passos são os seguintes:
O mesmo é verdadeiro para o check-in corporativo do WeChat. Você pode fazer sua própria pesquisa. Espero que você use apenas para aprender e não desafie as regras e regulamentos da empresa.