异常类型
pywxauto 定义的自定义异常。
异常层级
WxAutoError (基类)
├── WxWindowNotFoundError
├── WxControlNotFoundError
├── ControlTimeoutError
├── SendError
├── OCRError
├── LoginError
└── RegistryErrorWxAutoError
所有 pywxauto 异常的基类。
python
from pywxauto.wx import WxAutoError
try:
wx.send_text("张三", "hello")
except WxAutoError as e:
print(f"操作失败: {e}")WxWindowNotFoundError
微信窗口未找到。
常见原因:
- 微信未启动
- 微信未登录
- 指定的 PID 无效
WxControlNotFoundError
微信控件未找到。
常见原因:
- 窗口结构不匹配(微信版本更新)
- 控件尚未加载完成
- 界面状态不正确
ControlTimeoutError
等待控件超时。
常见原因:
- 网络延迟导致页面加载慢
- 等待超时时间设置过短
SendError
消息发送失败。
常见原因:
- 联系人不存在
- 文件路径无效
- 被对方拉黑
- 消息内容为空
OCRError
OCR 识别失败。
常见原因:
- OCR 引擎未正确安装
- wcocr 插件缺失
- 图片无法读取
LoginError
登录相关错误。
常见原因:
- 登录超时
- 账号被限制
- 网络异常
RegistryError
注册表操作失败。
常见原因:
- 权限不足
- 注册表键不存在
- 微信安装信息异常
异常处理示例
python
from pywxauto import Weixin
from pywxauto.wx import (
WxAutoError,
WxWindowNotFoundError,
SendError,
OCRError,
)
try:
wx = Weixin()
except WxWindowNotFoundError:
print("微信未启动或未登录")
exit(1)
try:
wx.send_text("张三", "hello")
except SendError as e:
print(f"发送失败: {e}")
except WxAutoError as e:
print(f"其他错误: {e}")