import time
import random
import pyautogui
import pyperclip
words = ["你好", "你真棒"]
names = ["张三", "张氏"]
def random_word():
word = random.choice(words)
name = random.choice(names)
return f"{name},{word}"
def send_word(word):
pyautogui.moveTo(1400, 800)
pyautogui.click()
pyperclip.copy(word)
pyautogui.hotkey("ctrl", "v")
pyautogui.press("enter")
if __name__ == "__main__":
send_word("我要开始咯!")
for i in range(10):
word = random_word()
send_word(word)
time.sleep(0.2)
注:本示例在 微信 3.9.6.33 上测试,思路是:点击坐标 (1400, 800) 聚焦输入框,粘贴文本,按 Enter
键发送之。
因为 pyautogui.write
方法不支持中文写入,所以使用剪贴板类库 pyperclip 将文本复制,发送热键 Ctrl + V
粘贴。
2 条评论
以前用过这个库,我的方案是,使用坐标必须考虑到不同电脑分辨率的问题。建议使用图像识别,识别图标并点击,使用 pyautogui.locateOnScreen 定位「发送」按钮;建议开启 pyautogui.FAILSAFE = True,鼠标移动到左上角会抛出异常,这样做是为了防止自动执行过程出现不可控的情况,需要主动终止程序。
感谢您的建议,您的考虑确实更加全面。这里需要说明一下,「代码片段」分类以记录代码为主,供参考使用,**不要**用于生产环境。