使用Python3.8+Chrome的Selenium无法在WhatsApp Web输入消息求助
解决WhatsApp Web Selenium脚本无法输入内容的问题
看来你的脚本已经能成功导航到目标聊天窗口,但输入框交互出了问题——别担心,这种情况大多是元素定位失效或者浏览器驱动兼容问题导致的,咱们一步步来解决:
1. 替换输入框的定位器(核心问题)
WhatsApp Web的前端元素类名会频繁更新,你用的_3u328这个类名大概率已经失效了。推荐用更稳定的属性来定位输入框,比如基于contenteditable和data-tab属性的XPath:
# 替换原来的inp_xpath inp_xpath = '//div[@contenteditable="true" and @data-tab="1"]' input_box = wait.until(EC.presence_of_element_located((By.XPATH, inp_xpath)))
或者用CSS选择器,稳定性同样不错:
inp_css = 'div[contenteditable="true"][data-tab="1"]' input_box = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, inp_css)))
2. 确保输入框获得焦点
有时候聊天窗口打开后,输入框并没有自动获得焦点,导致send_keys无效。可以在输入前先点击输入框激活它:
input_box.click() # 先激活输入框 for i in range(100): input_box.send_keys(string + Keys.ENTER) time.sleep(1)
3. 检查ChromeDriver与Chrome版本兼容性
这是很多Selenium新手容易忽略的点:ChromeDriver的版本必须和你本地安装的Chrome浏览器版本完全匹配(主版本号一致即可)。如果版本不匹配,会出现各种元素交互异常。
你可以:
- 打开Chrome,点击
设置→关于Chrome查看浏览器版本 - 下载对应版本的ChromeDriver替换脚本中指定的路径
4. 忽略WMI错误日志
你看到的[13920:4684:0130/154024.795:ERROR:wmi_refresher.cc(129)]这个错误,是Chrome浏览器的内部日志,和你的脚本功能完全无关,不会影响输入逻辑。如果觉得日志烦,可以在ChromeOptions里添加参数屏蔽:
chrome_options.add_argument('--log-level=3') # 只显示严重错误日志
把这些修改整合到你的脚本里,应该就能正常输入内容了。
内容的提问来源于stack exchange,提问作者J. Lobo
相关产品推荐
相关产品推荐

