小白学习使用wxauto制作微信问答机器人,在发送消息时出现报错
import wxauto
import requests
import json
def get_huifu():
...#这个函数是对接文言一心拿取回答
who = '***'
wx = wxauto.WeChat()
wx.GetSessionList()
wx.Search(who)
word = wx.GetAllMessage
word.reverse()
message = ''
for word in word:
if word[0] != who :
continue
else:
message = word[1]
break
huifu = get_huifu(message)
print(huifu)
wx.SendMsg(huifu)#前面的程序能够正常运行,这一步出现报错LookupError: Find Control Timeout(10.0s): {Name: '输入', ControlType: EditControl}
按照网上的攻略已经对wxauto的源代码进行了修改,修改如下:
1.在 wxauto.py 的文件中找到 WeChat 的类,并添加下述方法
def ChangeWindow(self, window_title):
self.EditMsg = self.UiaAPI.EditControl(Name=f'{window_title}')
2.之后在 ChatWith 方法中加入如下代码
def ChatWith(self, who, RollTimes=None):
'''
打开某个聊天框
who : 要打开的聊天框好友名,str; * 最好完整匹配,不完全匹配只会选取搜索框第一个
RollTimes : 默认向下滚动多少次,再进行搜索
'''
self.UiaAPI.SwitchToThisWindow()
self.ChangeWindow(who) # [2] 加入如下方法,在每次更改聊天对象时调用 ChangeWindow 方法
... ...
我改完之后测试了一下wxauto的基本功能都是正常的,但这个程序就是跑不起来