需求说明

  1. 给指定微信好友发消息
  2. 获取所有微信好友的微信号

环境准备

Windows 10
Visual Studio Code 1.69.2
Clicknium 0.1.2
Python 3.10.5
微信 3.7.5.23

运行示例

  • 参照clicknium getting started 设置开发环境
  • 克隆示例代码
  • 在Visual Studio Code打开WechatSearch文件夹
  • 在Visual Studio Code中打开sample.py文件
  • 按“F5”调试或者按“Ctrl+F5”运行代码

思路方案

1. 发送消息

  1. 点击微信侧边栏通讯录
  2. 点击搜索框
  3. 点击搜索结果第一条
  4. 输入框输入消息
  5. 点击发送按钮

2. 获取好友列表微信号

需要解决:怎么获取所有微信好友,因为好友列表需要鼠标滚动才能逐步显示完全,但是通过鼠标滚动的话,又存在一个问题,每次滚动显示好友列表数量不好控制?这时候可以利用先选中好友列表第一个,然后按键盘上 Down 键,就可以发现按一次,好友列表下移一次

  1. 点击微信侧边栏通讯录
  2. 点击好友列表第一个
  3. 开始循环发送快捷键{DOWN}
  4. 获取当前选中微信好友微信号

    通过Recorder 我们可以很轻松定位到微信号,但是怎么获取相邻元素显示微信号呢?这时候可以通过 ui(locator.wechat.contact_id).parent.child(1).get_text()方式获取,逻辑就是定位到微信号元素后,再通过代码获取父一级元素即可;

  5. 判断当前选中是微信群还是企业微信号

    通过录制判断,我们可以发现只有微信好友才会显示微信号,所以通过这个特征来区分

  6. 判断下移好友列表到底

    通过记录上一次微信和当前选中微信号,如果上一次微信号和当前微信号一致,就可以判断可以结束流程

知识准备

Clicknium 提供非常棒录制器方式和 Locator 理念,可以帮助你无需关注太多细节,非常轻松完成流程开发,所以有必要了解下。

  1. Locator
  2. Recorder
    涉及到函数:
  3. click
  4. set_text
  5. is_existing
  6. send_hotkey

开始行动

  1. 创建项目,新建文件夹,打开 Visual Studio Code,按下Ctrl+Shift+P快捷键,选择Clicknium: Create Project),并且选择刚才新建文件即可;
  2. 打开 app.py 脚本文件,按照上述思路方案;

    发送消息

    def send_message(user, message):ui(locator.wechat.contact_button).click()ui(locator.wechat.search_user).set_text(user, InputTextBy.SendKeyAfterClick)ui(locator.wechat.search_result).click()ui(locator.wechat.message_input).set_text(message, InputTextBy.SendKeyAfterClick)ui(locator.wechat.message_send_button).click()
    

    获取好友列表

def get_contacts():ui(locator.wechat.contact_button).click()cc.find_element(locator.wechat.listitem_new_contact).click(mouse_button="left")preContactId = ''while True:cc.send_hotkey("{DOWN}")isContact = cc.is_existing(locator.wechat.contact_id)if isContact:curContactId = ui(locator.wechat.contact_id).parent.child(1).get_text()if curContactId == preContactId:breakprint('PreUserName:'+preContactId+' CurContactId:'+curContactId)preContactId = curContactId

python clicknium 微信发送消息以及获取好友列表相关推荐

  1. python登录微信自动发送消息和绘画好友男女比例

    #coding=utf-8 import sys reload(sys) sys.setdefaultencoding( "utf-8" ) import itchat # itc ...

  2. python发送消息到微信_通过python登录微信发送消息

    通过扫描二维码登录后发送信息,主要应用到了wxpy库,具体的看代码 from threading import Timer from wxpy import * import requests # # ...

  3. python调用微信发送消息过于频繁_python 调用微信 发消息

    本篇文章讲述的是调用 python 的 wxpy 包自动发送微信消息. 相当于 登录 微信网页版. 具体代码方便复制,提供一份文字版代码 #!/usr/bin/env python3 # coding ...

  4. java编程实现给微信发送消息

    平时我们老是在网上看到使用python操作微信发送消息,这种功能java能不能实现呢,答案是可以的,这里我借助飞鸽快信实现一下.想了解飞鸽快信更多请访问官网. 1.访问飞鸽快信:https://u.i ...

  5. python查看微信撤回消息_想查看微信好友撤回的消息?Python帮你搞定

    要说微信最让人恶心的发明,消息撤回绝对能上榜. 比如你现在正和女朋友用微信聊着天,或者跟自己喜欢的女孩子聊着天,一个不留神,你没注意到对方发的消息就被她及时撤回了,这时你很好奇,好奇她到底发了什么?于 ...

  6. linux 脚本调用企业微信_shell或python调用企业微信发送消息(实现报警功能)

    shell或python调用企业微信发送消息(实现报警功能) 官方文档 注册登陆企业微信 登录企业微信管理端 -> 应用与小程序 -> 应用 -> 自建,点击"创建应用&q ...

  7. 企业微信发送消息--Python

    企业微信内部消息推送--Python 我有一些自动化任务,这些自动化任务的执行结果,是成功和失败都是通过邮件发送的.但是邮件这个工具,有点正式,毕竟我只想一个通知.那有没有方法可以用微信接受通知呢? ...

  8. 使用Python实现给企业微信发送消息功能

    本文将介绍如何使用python3给企业微信发送消息,文中有详细的图文解说及代码示例,对正在学习python的小伙伴很有帮助,需要的朋友可以参考下.编程资料点击领取 目录 一.概述 二.python脚本 ...

  9. 使用python+微信发送消息提醒,实现程序监控

    使用python+微信发送消息提醒,实现程序监控 使用python+微信可以非常方便的提醒自己运行的程序是否报错,监控程序运行状态 1.申请微信测试号 https://mp.weixin.qq.com ...

最新文章

  1. 用Eclipse的snippets功能实现代码重用
  2. Ubuntu安装google拼音输入法
  3. zhlan--Python中的字典遍历方法 字典取值
  4. 蓝桥杯第六届国赛JAVA真题----奇怪的数列
  5. AngularJs+bootstrap搭载前台框架——基础页面
  6. stegsolve---图片隐写查看器
  7. 用于android天气开发的背景图,Android开发天气预报APP的设计与实现毕业设计.pdf
  8. 双重释放漏洞(来自漏洞战争一书)
  9. Win10使用tensorflow出现ImportError: DLL load failed: 动态链接库(DLL)初始化例程失败
  10. Spring Boot 菜鸟教程 2 Data JPA
  11. linux bt 命令行,linux命令行bt下载工具
  12. 如何用活字格定制监狱管理系统
  13. Greenplum 数据库和schema管理
  14. uview 瀑布流_微信小程序 瀑布流布局
  15. 静态分析之数据流分析与 SSA 入门 (二)
  16. php微信使用腾讯地图进行定位,微信小程序在腾讯地图上选择定位
  17. 还贷的那些事III——等额还贷的计算
  18. linux的pstee命令安装与卸载
  19. vs2017c语言没有空项目,「vs2017新建项目」visual studio 2017 创建空项目和桌面向导下的空项目...
  20. 海尔集团的的具体营销策略和营销管理

热门文章

  1. 亚马逊再开3000+无人店!国内却一半是海水一半是火焰
  2. linux dd if提示是目录,Linux dd 命令详解
  3. Ansible Inventory详细使用介绍
  4. Spring aop报错:com.sun.proxy.$Proxyxxx cannot be cast to yyy
  5. kali配置静态IP地址
  6. 巨斧砍大树-sdut
  7. IDEA中Resource Bundle ‘application‘
  8. spring中MessageSource的配置使用方法3--ResourceBundleMessageSource
  9. Leetcode算法Java全解答--37. 解数独
  10. 有人知道要怎么用c++提取出文本里面的信息吗,例如把这个表格里的所有住户账号,密码提取出来