整理 | 小耕家的喵大仙
出品 | CSDN(ID:lichao19897314)
关联源码及工具下载
https://download.csdn.net/download/lichao19897314/90096681
往期知识回顾:
👆 以上文章是以往对使用自动化技术操作微信的一些文章及案例!!!!
本篇目的
我们在发送消息给某个联系人之前,我们要进行的工作就是先找到某个联系人,在微信UI自动化的过程中我们如何搜索指定联系人呢?
既然是UI自动化,那么我们这里肯定是利用微信程序的搜索功能来实现联系人的查找。先上图看效果👇
效果展示
搜索联系人效果
技术细节
(1)查找微信搜索文本框控件元素
我们通过窗体控件对象树寻找到搜索文本框的窗体路径为/Pane[2]/Pane[2]/Pane[1]/Pane/Pane/Edit,通过下方代码找到搜索框元素
if(Search==null)
Search = UI_WX_Window.Current.Find("/Pane[2]/Pane[2]/Pane[1]/Pane/Pane/Edit");
(2)向搜索框输入指定的联系人信息
我们在静态点击搜索框让搜索框获取焦点后,清空输入框并复制粘贴指定的文本内容到搜索框中,接下来微信会自己搜索到指定的联系人。
private void SetText(string text, AutomationElement ele)
{
//静态点击元素
UI_WX_Window.Current.ClickElement(ele);
//清空输入框
UI_WX_Window.Current.ClearInput();
//向截切版设置内容
WXUIAuto.Currnet.SetClipBoard(text);
//将截切版内容粘贴到搜索框
UI_WX_Window.Current.Paste();
}
(3)点击搜索到的联系人元素
微信程序执行搜索后会出现一个结果列表,那么我们就遍历搜索列表,如果有结果等于我们要搜索的联系人那么我发送一个点击到搜索列表中的第一个列表项。
private AutomationElement SearchContact(string name)
{
//因为搜索需要时间,我们重复寻找15次,如果没有那么就确定没有该联系人在列表中
for (int i = 0; i < 15; i++)
{
//寻找联系人搜索列表中的列表项
var currentConract = UI_WX_Window.Current.Find("/Pane[2]/Pane[2]/Pane[2]/Pane[2]/List/ListItem[1]");
if (currentConract != null
&&
currentConract.Name == (name))
{
return currentConract;
}
Thread.Sleep(100);
}
return null;
}
如果执行SearchContact方法找到了元素后,我们直接调用 UI_WX_Window.Current.ClickElement(element)方法点击搜索到的元素,那么微信会自动将窗体定位到与搜索到的联系人的聊天界面!
上一篇(5)C#实现微信窗体元素静默点击-微信UI自动化(.Net)https://blog.csdn.net/lichao19897314/article/details/122961362
下一篇 (7)C#群发微信消息给指定联系人-微信UI自动化(.Net)https://blog.csdn.net/lichao19897314/article/details/129762864