【UI自动化】微信群聊未添加人数统计
🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝
🥰 博客首页:knighthood2001
😗 欢迎点赞👍评论🗨️
❤️ 热爱python,期待与大家一同进步成长!!❤️
👀给大家推荐一款很火爆的刷题、面试求职网站👀
每日刷题,跟我一起来巩固基础和刷题吧
目的:本来想写个小学、初中、高中、大学中班群中未添加好友的统计,目前就先把最近写的分享出来,方便一起学习、交流!
步骤:
import subprocessimport uiautomation as autoimport time# ToDo 这里需要更改微信所在地址,可通过桌面微信图标右键打开文件所在的位置查找到路径subprocess.Popen('E:\微信\WeChat\WeChat.exe')wechatWindow = auto.WindowControl(Name='微信', className="WeChatMainWndForPC")
首先是导入相应的模块,如uiautomation和subprocess,然后使用
subprocess.Popen()
打开微信(注意是登录状态),接着定义微信窗格对象,使用inspect.exe即可轻松搞定。
# 获取微信窗格的宽和高w = wechatWindow.BoundingRectangle.width()h = wechatWindow.BoundingRectangle.height()# 将微信移到左上角,方便后续操作wechatWindow.MoveWindow(0, 0, w, h)
这里尽量将微信移到左上角,因为后续点击微信用户时候,需要右击,这样可以防止出错(不信的人可以去试试)
接下来定义聊天信息和聊天成员的窗格对象。
b = wechatWindow.ButtonControl(Name='聊天信息')b.Click()b1 = wechatWindow.ListControl(Name='聊天成员')b2 = wechatWindow.ButtonControl(Name='查看更多')if b2.Exists(): b2.Click()
# 选框底部rect_btm = b1.GetParentControl().BoundingRectangle.bottom
选框如下图
# 定位具体群成员specific_mem = b1.GetChildren()
重点:
num = 0for member in specific_mem: if not b1.Exists(0, 0): break if member.Name == '添加' or member.Name == '删除': continue if member.BoundingRectangle.bottom > rect_btm: auto.WheelDown(waitTime=0.01) member.Click(15, 15) # 主要是判断“添加到通讯录”按钮是否存在来判断是否添加好友 mail = wechatWindow.ButtonControl(Name="添加到通讯录") if mail.Exists(0, 0): num += 1 print(member.Name) member.RightClick(15, 15) if auto.IsKeyPressed(auto.Keys.VK_F4): breakprint('未添加的成员个数:', num)wechatWindow.MoveToCenter()
①首先定义num,用来计算未加好友的人数,
②Exists(0, 0)大致意思表示最快时间搜索
③对于群中的添加、删除按钮,我们pass即可
④对于显示不出的群成员,需要进行滚轮滚动,通过判断控件底部的位置高低,实行滚轮滚动。
⑤主要是判断“添加到通讯录”按钮是否存在来判断是否添加好友,该按钮存在,则计数。
⑥
我们判断好后,需要让该选框消失,我们可以点击鼠标右键或者点击头像右上角部分,这里笔者采用点击鼠标右键(弊端是不能用在自己创建的群)。
⑦最后打印,并将微信界面居中。
这样,我们就实现了一开头的目的。😀😀