最近(3周前了😂)做一个 Demo,要能用程序自动发微信给指定好友。找了一圈现有方案,作者要么删库跑路,要么支持的微信版本太旧,无法满足要求。 思来想去,决定用程序直接模拟 ui 操作的方式来实现。最后选了 pyauto-gui 库。
给一个好友发消息,操作流程是这样的:
这个流程里仅有几个关键操作:
下面介绍下如何用 pyauto-gui 实现这些操作。
首先,你需要把要找到的元素进行截图。比如,你要找到搜索框,就把搜索框截图下来。我们把这个截图叫做 wx-search-box.png 好了。

然后在代码里,你可以用 locateCenterOnScreen 函数来找到这个元素的位置(注意处理 pyautogui.ImageNotFoundException 异常)。比如:
import pyautogui
_CONFIDENCE = 0.8
cx, cy = pyautogui.locateCenterOnScreen('wx-search-box.png', confidence=_CONFIDENCE)
这里置信度 _CONFIDENCE 是一个浮点数,范围是 [0, 1]。默认值是 0.8。
如果你的截图和实际元素的相似度低于这个值,就会抛出 pyautogui.ImageNotFoundException 异常。
自行按需调整置信度即可,反正它不是越低越好,更不是越高越好。
只要像下面这样就可以了:
pyautogui.click(cx, cy)
输入文本比较坑。模拟输入中文非常麻烦,我们用 ctrl + v 来输入。
import pyperclip
pyperclip.copy(some_text)
pyautogui.hotkey('ctrl', 'v')
就是这样了。下面是一个
就是这样了。