如何通过Python的Webbrowser库实现WhatsApp消息自动发送(无需手动点击发送按钮)
如何用Python自动发送WhatsApp消息(无需手动点击发送)
问题描述
我正在用Python的webbrowser库发送WhatsApp消息,但目前必须手动打开WhatsApp网页并点击发送按钮才能完成消息发送。我的代码如下:
import webbrowser num = ('72********') message = ("Message sent using python!!!") a = webbrowser.open(f'https://web.whatsapp.com/send?phone=+46{name}&text={message}', new = 2) print('waiting..')
代码能正常运行,但我想实现无需手动点击发送按钮就能自动完成消息发送,请问该怎么做?
解决方案
方法1:使用Selenium自动化浏览器操作
webbrowser库只能完成打开网页的基础操作,没法模拟用户点击这类交互行为,所以我们可以用Selenium来实现自动点击发送按钮的操作,这是个人场景下最易落地的方案:
安装依赖
先安装Selenium库:pip install selenium然后下载对应浏览器的驱动程序(比如Chrome的驱动,需要和你的浏览器版本完全匹配),解压后放到Python可直接访问的路径,或者配置到系统环境变量里。
示例代码
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import time num = '72********' message = "Message sent using python!!!" # 初始化Chrome浏览器(用Firefox的话改成webdriver.Firefox()即可) driver = webdriver.Chrome() try: # 打开WhatsApp发送链接(注意修正原代码里的{name}为{num},否则会报错) driver.get(f'https://web.whatsapp.com/send?phone=+46{num}&text={message}') # 等待发送按钮加载完成(最多等待20秒,可根据网络情况调整) send_button = WebDriverWait(driver, 20).until( EC.element_to_be_clickable((By.XPATH, '//span[@data-icon="send"]')) ) # 点击发送按钮 send_button.click() # 等待消息发送完成(可选,根据网络速度调整休眠时间) time.sleep(3) print("消息已自动发送") finally: # 关闭浏览器(如果需要保留会话可以注释掉这行) driver.quit()补充说明:
- 第一次运行时需要扫码登录WhatsApp Web,之后浏览器会保存会话状态,后续运行无需重复扫码。
- 若后续WhatsApp网页更新导致XPATH选择器失效,可以打开浏览器开发者工具,重新定位发送按钮的元素属性来调整选择器。
方法2:使用WhatsApp Business API(商业场景)
如果你的需求是批量发送消息或者用于商业用途,可以考虑官方的WhatsApp Business API。不过这个需要申请Meta的商家账号,有一定准入门槛,更适合有规模的商业需求。
小提示
你的原代码里有个小错误:phone=+46{name}中的name应该是num,不然会抛出变量未定义的错误,记得修正哦!
内容的提问来源于stack exchange,提问作者Harsimrat
相关产品推荐
相关产品推荐

