pyautogui微信小程序自动化操作
一个很简单的脚本,用途是实现微信小程序或其他软件的自动化操作,如果是长期固定需求,可以考虑把脚本内置到常用软件的环境中,比如MAYA,当我每天打开MAYA时就可以实现每天自动在小程序上疫情打卡
主要使用pyautogui和opencv模块,opencv用于图像识别,pyautogui用于键鼠操作
-
import pyautogui as pgi
-
import time
-
import cv2
此处设置为相对路径,运行前提前将小程序图标截图放在这个路径下命名为daka.jpg
-
# 寻找桌面图标:
-
# 用opencv识别桌面图像,并与路径中的图像比对,输出中心点。
-
# pyautogui.locateonscreem也可以识别屏幕,但是识别对分辨率要求较高,差一个像素点都会导致错误,返回none,采用opencv直接识别,大部分情况都会返回一个结果(不一定是目标结果)
-
def findProc(img_path):
-
pgi.screenshot().save(r'.\img\screenshot.png')
-
img = cv2.imread(r'.\img\screenshot.png')
-
img_terminal = cv2.imread(r'.\img\daka.jpg')
-
height = img_terminal.shape[0]
-
width = img_terminal.shape[1]
-
result = cv2.matchTemplate(img, img_terminal, cv2.TM_SQDIFF_NORMED)
-
upper_left = cv2.minMaxLoc(result)[2]
-
center = (int(upper_left[0] width/2), int(upper_left[1] height/2))
-
return center
主程序部分是针对同济大学疫情上报小程序写的,用于实现自动填写信息并完成上报和关闭窗口
-
# 主程序:
-
def autoClick(var_center):
-
pgi.doubleClick(var_center[0], var_center[1])
-
time.sleep(2)
-
pgi.click(1150, 690)# 进入界面
-
time.sleep(1)
-
pgi.click(1350, 730)# 健康状态
-
time.sleep(0.2)
-
pgi.click(1510, 730)# 确定
-
time.sleep(0.1)
-
pgi.click(1336, 807)# 隔离状态
-
time.sleep(0.2)
-
pgi.click(1500, 724)# 确定
-
time.sleep(0.1)
-
pgi.click(1330, 863)# 今日体温
-
time.sleep(0.01)
-
pgi.press(['3', '6'])
-
pgi.click(1280, 1046)# 上报
-
time.sleep(0.1)
-
pgi.click(1504, 234)# 关闭
-
# 执行:
-
# 执行主程序并输出日志文件,记录本次操作的日期时间
-
def routine(img_path, name):
-
center = findProc(img_path)
-
autoClick(center)
-
output_path = r'.\img\log.txt'
-
now = time.localtime()
-
now_time = time.strftime("%Y-%m-%d %H:%M:%S", now)
-
with open(output_path, 'w ', encoding='utf-8') as file1:
-
print(now_time, file=file1)
-
# 判断上次更新时间
-
# 获取日志文件中的信息,查看今天是否已经执行过程序,如果没有执行过,则会执行
-
def judgeLastTime():
-
with open(r'.\img\log.txt', 'r ', encoding='utf-8') as file1:
-
lastDate = ''
-
nowDate = ''
-
data1 = file1.readlines()
-
if data1 == []:
-
routine(r'.\img\screenshot.png', 'daka')
-
else:
-
lastDate = data1[0].split( )[0]
-
now = time.localtime()
-
nowDate = str(time.strftime("%Y-%m-%d %H:%M:%S", now)).split( )[0]
-
if nowDate != lastDate:
-
routine(r'.\img\screenshot.png', 'daka')
运行程序
judgeLastTime()
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgahffh
系列文章
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13