> 文档中心 > 【UI自动化】微信群聊未添加人数统计

【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即可

④对于显示不出的群成员,需要进行滚轮滚动,通过判断控件底部的位置高低,实行滚轮滚动。

⑤主要是判断“添加到通讯录”按钮是否存在来判断是否添加好友,该按钮存在,则计数。

我们判断好后,需要让该选框消失,我们可以点击鼠标右键或者点击头像右上角部分,这里笔者采用点击鼠标右键(弊端是不能用在自己创建的群)。

⑦最后打印,并将微信界面居中。

这样,我们就实现了一开头的目的。😀😀

好看字体下载