1.获取搜索框位置
微信搜索框:
#screenshot拍下快照,保存到本地,图片包含有微信页面,图片为sousuo.png。
pyautogui.screenshot('./data/picture/sousuo.png')
#读取快照图片(sousuo.png)与微信搜索框图片(sousuo.jpg)
shot = cv2.imread('./data/picture/sousuo.png')
target = cv2.imread(f'./data/picture/sousuo.jpg')
#两张图片比较配对,cv2.TM_CCOEFF_NORMED配对的算法
results = cv2.matchTemplate(shot, target,cv2.TM_CCOEFF_NORMED)
#获取匹配最高点的开始位置
pos_start = cv2.minMaxLoc(results)[3]
#预估搜索框中间位置
x = int(pos_start[0]) + int(target.shape[1]/2)
y = int(pos_start[1]) + int(target.shape[0]/2)
2.点击搜索框并复制黏贴user回车
#点击搜索框
pyautogui.click(x,y)
#复制并粘贴搜索的用户
pyperclip.copy('文件传输')
pyautogui.hotkey('Ctrl','v') #粘贴
#回车
pyautogui.hotkey('enter')
3.发送消息
#复制发送的消息
pyperclip.copy(message)
#粘贴发送的消息
pyautogui.hotkey('Ctrl', 'v')
#回车
pyautogui.hotkey('enter')
4.完整代码
import pyautogui
import pyperclip
import random
import cv2
import time
#获取搜索框位置
def get_sousuo(image):
time.sleep(10)
pyautogui.screenshot('./data/picture/sousuo.png')
shot = cv2.imread('./data/picture/sousuo.png')
target = cv2.imread(f'./data/picture/{image}.jpg')
results = cv2.matchTemplate(shot, target,cv2.TM_CCOEFF_NORMED)
pos_start = cv2.minMaxLoc(results)[3]
x = int(pos_start[0]) + int(target.shape[1]/2)
y = int(pos_start[1]) + int(target.shape[0]/2)
return x,y
#点击搜索框并复制黏贴user回车
def get_caozuo(x,y,user):
pyperclip.copy(user)
pyautogui.click(x,y)
pyautogui.hotkey('Ctrl','v')
pyautogui.hotkey('enter')
#发送消息
def send_meg(message):
pyperclip.copy(message)
pyautogui.hotkey('Ctrl', 'v')
pyautogui.hotkey('enter')
if __name__ == '__main__':
image = 'sousuo'
user = '文件传输'
messages = ['hello','你好','hi','在吗']
x, y = get_sousuo(image)
get_caozuo(x, y, user)
image = 'meg'
x, y = get_sousuo(image)
pyautogui.click(x,y)
for i in range(10):
message = random.choice(messages)
send_meg(message)