如何使用VB 2019配合Selenium Chrome实现WhatsApp自动回复按钮
环境配置
- 打开VB2019的Nuget包管理器,搜索安装
Selenium.WebDriver、Selenium.WebDriver.ChromeDriver两个依赖包,注意ChromeDriver版本必须和你本地安装的Chrome浏览器主版本号一致,避免启动失败。 - 首次运行需要手动扫码登录WhatsApp Web,你可以通过添加用户配置文件参数的方式保留登录状态,避免每次启动都要扫码:
Dim options As New ChromeOptions() options.AddArgument("user-data-dir=C:\YourPath\ChromeUserData") ' 替换为你本地的存储路径 Dim driver As New ChromeDriver(options) driver.Url = "https://web.whatsapp.com" ' 可自定义等待逻辑检测页面登录加载完成
实现带自动回复按钮的消息发送
目前有两种稳定实现方案:
方案1:调用WhatsApp Web内置JS接口发送(Selenium直接执行)
该方案不需要依赖额外服务,直接通过Selenium执行JS脚本调用WhatsApp前端暴露的内部方法发送交互式消息,示例代码如下:
' 先定位到目标聊天,获取当前聊天的jid(WhatsApp的用户唯一标识) Dim targetJid As String = driver.ExecuteScript("return Store.Conversation.active._jid._user") ' 构造带按钮的消息体 Dim sendBtnMsgScript As String = $" const btnMessage = {{ text: '请选择你需要的服务', footer: '自动回复', buttons: [ {{id: 'btn1', text: '查询订单'}}, {{id: 'btn2', text: '联系客服'}}, {{id: 'btn3', text: '取消操作'}} ], headerType: 1 }} return Store.WapQuery.sendButtonMsg('{targetJid}', btnMessage) " ' 执行脚本发送 driver.ExecuteScript(sendBtnMsgScript)
注意:如果WhatsApp Web更新后内部接口名变更,需要对应调整脚本里的Store对象下的属性名
方案2:对接私有协议实现(稳定性更高)
你找到的相关NodeJS库是对接WhatsApp私有协议实现的,比Selenium模拟操作的稳定性高、抗封号能力更强,你可以用NodeJS把相关核心逻辑封装成本地HTTP接口服务,VB端只需要发送POST请求到本地接口就能实现带按钮消息的发送,不需要处理Selenium的DOM适配问题。
注意事项
- 请勿用该功能发送垃圾营销内容,WhatsApp官方对自动化操作检测严格,违规会导致账号被永久封禁
- 交互式按钮消息仅可发送给已主动和你发起过对话的用户,给陌生人发送会被系统直接拦截
- 如果使用Selenium模拟DOM操作的方案,WhatsApp Web前端结构更新后需要同步更新元素选择器逻辑
内容的提问来源于stack exchange,提问作者user3314233
相关产品推荐
相关产品推荐

