这是我用来微信自动发送消息的代码,最近用不到了
代码之前是可以运行的,微信更新后就不行了,我要怎么修改代码才可以运行呢
这个错误提示是在执行UI自动化时,寻找对应控件的内容超时了,无法找到对应的控件。根据错误提示中的ControlType: EditControl,可以看出是在寻找一个编辑框控件时发生的问题。
根据错误信息,是找不到 EditControl 控件导致的问题,可能是因为微信更新后界面元素有所变化。建议您可以尝试修改以下代码:
在 SendWeChat 函数中,把
dia.SendKeys(Msg)
dia.SendKey(VK_RETURN)
修改为
dia.SendKey(VK_CONTROL, VK_RETURN) # 发送消息快捷键
uiautomation.SendKeys(Msg) # 输入消息内容
uiautomation.SendKey(VK_RETURN) # 发送消息
把 handle_wechat_dialog 函数中的以下代码
# 等待输入框出现
while not inputbox.Exists(3):
pass
修改为
# 等待输入框出现
for i in range(30):
if inputbox.Exists(1):
break
time.sleep(1)
if not inputbox.Exists():
raise LookupError('Find Control Timeout(30s): {ControlType: EditControl}')
这样修改之后应该就可以适应微信更新后的界面布局了。
就此错误而言主要提示无法找到Name属性为"会话"的控件。这很有可能是由于微信更新后,这个控件的属性或名称发生了变化。打开开发者工具,检查"会话"这个控件的最新属性。很可能Name属性变了,或者ControlType变为别的类型,把代码改下就可以了
版本依赖很重要,一般不要轻易更换
LookupError: Find Control Timeout(10s): {ControlType: EditControl} 这里的错误提示你了,找不到编辑框控件了,应该是你更新后,组件的名称或位置变了导致的,建议你回退下版本。如果你一定要使用新版的话,那么,你需要知道目前的输入消息的编辑框控件是哪一个,之前你是怎么定位的,现在从新定位下这个组件的位置。或者你查下uiautomation这个库的版本是否支持你更新的这个软件的版本。
微信更新后,相应的API变了吧,去查一下最新的API,按照api文档修改就可以了