使用Python+Selenium+Firefox复用浏览器窗口解决WhatsApp重复扫码问题
解决Selenium+Firefox每次打开WhatsApp Web需重新扫码的问题
我完全懂这种重复扫码的烦躁!你想用Firefox配置文件保留登录状态的思路没问题,大概率是路径或者Selenium版本的配置方式不对,我给你几个针对性的解决方案:
1. 先修正配置文件的路径(最可能的问题)
你写的路径/Users/Hodai/AppData/Roaming/Mozilla/Firefox/Profiles/...是Windows系统的Firefox配置文件路径,但你用的是macOS,正确的默认路径应该是~/Library/Application Support/Firefox/Profiles/。
怎么找准确路径?
- 打开Firefox,在地址栏输入
about:profiles回车 - 找到你专门为WhatsApp创建的配置文件,复制它的「根目录」完整路径
2. 使用Selenium 4推荐的配置方式(替代已弃用的FirefoxProfile)
从Selenium 4开始,FirefoxProfile已经被标记为弃用,官方推荐用Options类来加载配置文件,这也可能是你之前配置失效的原因。更新后的代码如下:
from selenium import webdriver from selenium.webdriver.firefox.options import Options # 替换成你从about:profiles复制的真实路径 profile_directory = "/Users/Hodai/Library/Application Support/Firefox/Profiles/v27qat5d.whatsapp_profile" # 配置Firefox选项 firefox_options = Options() firefox_options.set_preference('profile', profile_directory) # 初始化驱动 driver = webdriver.Firefox( executable_path="/Users/Hodai/Desktop/geckodriver", options=firefox_options ) driver.get('https://web.whatsapp.com') # 第一次运行需要扫码,之后脚本会直接读取缓存的登录状态 input('Enter anything after scanning QR code (only required for first run)')
3. 额外的关键注意事项
- 确保你用来加载的配置文件,已经手动打开Firefox并登录过WhatsApp Web,且勾选了「记住此设备」,这样缓存中才会保存登录凭证。
- 运行脚本时,不要同时打开使用同一个配置文件的Firefox窗口,否则会因为文件锁导致配置加载失败。
- 如果还是不行,可以尝试创建全新的Firefox配置文件:打开Firefox时按住
Option键,选择「创建配置文件」,用新配置文件登录WhatsApp Web后,再用它的路径配置脚本。
内容的提问来源于stack exchange,提问作者Zohar Revivo
相关产品推荐
相关产品推荐

