You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Selenium的send_keys随机发送含表情文本报错求助

解决ChromeDriver发送非BMP表情报错的问题

问题原因

你遇到的报错是因为旧版本ChromeDriver仅支持**基本多语言平面(BMP)字符,而列表里的部分表情(比如🌞、🌅等)属于补充多语言平面(SMP)**字符,超出了旧版ChromeDriver的支持范围。直接写字符串时,部分表情可能被编辑器或Python自动处理为BMP兼容形式,但从列表调用随机值时没有这个处理,导致触发报错。

解决方案

方案1:升级Chrome和ChromeDriver到最新版本

新版ChromeDriver已修复SMP字符支持问题,升级后可直接使用原有代码:

textbox = driver.find_element(By.XPATH, textbox_xpath)
textbox.send_keys(random.choice(gm) + Keys().ENTER)

方案2:通过剪贴板粘贴绕过限制

如果暂时无法升级,可借助系统剪贴板复制文本,再模拟粘贴操作:

import random
import pyperclip
from selenium.webdriver.common.keys import Keys

gm = [
  'Good morning 🌞',
  'Good morning ☀️',
  'Good morning ⛅',
  'Good morning 🌅',
  'Good morning 🌄',
  'Good morning 🌻',
  'Good morning ⛅',
  'Good morning 🌥️',
  'Good morning 🌤️',
  'Good morning ☕',
]

textbox = driver.find_element(By.XPATH, textbox_xpath)
# 随机选文本并复制到剪贴板
selected_text = random.choice(gm)
pyperclip.copy(selected_text)
# 模拟Ctrl+V粘贴,再按回车发送
textbox.send_keys(Keys.CONTROL, 'v')
textbox.send_keys(Keys.ENTER)

使用前需安装pyperclip库:pip install pyperclip

方案3:替换列表中的SMP表情为BMP兼容表情

将列表里的非BMP表情替换为BMP内的等价表情(比如用☀️代替🌞),但这种方法会限制表情种类,仅作为临时应急方案。

内容的提问来源于stack exchange,提问作者Tony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 11:16:01