(12)采集微信消息记录及历史消息-微信UI自动化(.Net+C#)

整理 | 小耕家的喵大仙

出品 | CSDN(ID:lichao19897314)

Q Q | 978124155

 往期知识回顾: 

(1)C#开启探索微信自动化之路-微信UI自动化

(2)C#创建微信窗体自动化实例-微信UI自动化

(3)C#针对系统热键管理-微信UI自动化

(4)C#采集微信通讯录和联系人-微信UI自动化

(5)C#实现针对微信窗体鼠标静默点击-微信UI自动化

(6)C#搜索微信通讯录联系人-微信UI自动化

(7)C#实现微信消息群发-微信UI自动化

(8)C#监控微信进程运行状态-微信UI自动化

(9)C#监控微信网络连接状态-微信UI自动化

(11)C#实现微信窗体尺寸跟随调整-微信UI自动化

(12)C#采集微信聊天记录及历史消息-微信UI自动化

(13)C#实现自动回复微信消息-微信UI自动化

(14)C#针对微信界面元素截图操作-微信UI自动化

(15)C#实现对微信窗体的行为管控-微信UI自动化

(16)C#实现微信多开-微信UI自动化

(17)C#实现微信聊天文件接收及下载-微信UI自动化

👆 以上文章是以往对使用自动化技术操作微信的一些文章及案例!!!!

上一篇文章介绍了微信UI自动化-微信窗口跟随主窗体移动(C#)

最近也一直没有更新过这块,近期很多朋友咨询我能不能用自动化测试工具获取微信的聊天记录,所以抽空实现了该功能。

功能如下:自动获取左边勾选的联系人,采集指定联系人某日期区间的微信聊天记录。

直接上效果图和视频

获取消息记录

(1)首先搜索根据勾选的搜索联系人

该功能已经在实现 链接如下(6)微信UI自动化-搜索指定联系人(C#) 这里不重复

(2)获取聊天面板中的消息

演示代码获取指定联系人10月10到今天的聊天记录

        private void GetMessage(string name)
        {
            tempCount = 0;
            List<WXChatMessage> contents = new List<WXChatMessage>();
            string chatPath = "/Pane/Pane[2]/Pane/Pane/Pane/Pane/Pane[2]/Pane[1]/Pane/List";
            var chatList = UI_WX_Window.Current.Find(chatPath);
            while (true)
            {
                var chatListItemSource = chatList.FindAllChildren().ToList();
                var tempMessageSource = new List<WXChatMessage>();
                chatListItemSource.GetRange(0, chatListItemSource.Count - tempCount).ForEach(item =>
                {
                    if (item.ControlType == FlaUI.Core.Definitions.ControlType.ListItem)
                    {
                        var my = item.FindFirstByXPath("/Pane/Pane[2]/Pane/Pane/Pane/Text");
                        var to = item.FindFirstByXPath("/Pane/Pane[1]/Pane/Pane/Pane/Text");

                        if (my != null)
                        {
                            var button = item.FindFirstByXPath("/Pane/Button");
                            tempMessageSource.Add(new WXChatMessage { Content = my.Name.ToString(), UserName = button.Name.ToString(), Type = 1 });
                        }
                        else if (to != null)
                        {
                            var button = item.FindFirstByXPath("/Pane/Button");
                            tempMessageSource.Add(new WXChatMessage { Content = to.Name.ToString(), UserName = button.Name.ToString(), Type = 2 });
                        }
                        else
                        {
                            var time = item.FindFirstByXPath("/Text");//日期
                            if (time != null)
                            {
                                var s = DateTime.Now;
                                DateTime.TryParse(item.Name, out s);
                                tempMessageSource.Add(new WXChatMessage { Time = s == DateTime.MinValue ? DateTime.Now : s, Content = time.Name.ToString(), Type = 3 });
                            }
                        }
                    }
                });
                contents.InsertRange(0, tempMessageSource);

                tempCount = chatListItemSource.Count();

                var beTime = DateTime.Parse("2023-10-10");

                if (tempMessageSource.Where(b => b.Type == 3 && b.Time <= beTime).Count() > 0)
                {
                    break;
                }

                //点击查看更多
                if (chatListItemSource[0].ControlType == FlaUI.Core.Definitions.ControlType.Button && chatListItemSource[0].Name.ToString() == "查看更多消息")
                {
                    //点击
                    ScrollTop(chatList, chatListItemSource[0]);
                }
                else
                {
                    break;
                }
            }
            ChatSource.Add(new WXChat { Name = name, Chats = contents });
        }

(3)如果发现未到指定日期需要滚动聊天面板循环获取

  private void ScrollTop(FlaUI.Core.AutomationElements.AutomationElement chatList, FlaUI.Core.AutomationElements.AutomationElement more)
        { 
       //该出代码比较长,需要请QQ沟通获取详细源码
        }

如果读者对上述文章存在不清晰的地方可以找本人获取运行源码来学习,QQ 978124155

上一篇(11)微信UI自动化-微信窗口跟随主窗体移动(C#)

下一篇 (13)PC端微信自动化UI测试-C#接收微信消息并自动回复

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小耕家的喵大仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值