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

使用selenium-chromedriver发内容到Telegram bot报WebElement无法JSON序列化如何解决

问题解决方法

报错原因

TypeError: Object of type WebElement is not JSON serializable 报错的核心原因是:
Telegram Bot 的 send_message 方法的 text 参数仅支持传入字符串类型的值,你代码中直接传入了 Selenium 查询返回的 WebElement 对象,该对象是 Selenium 自定义的元素类型,无法被直接序列化为 JSON 格式传输给 Telegram 接口。

解决步骤

  • 从 WebElement 对象中提取你需要的文本内容,调用 WebElement 的 .text 属性即可获取元素内的可见文本
  • 将提取到的字符串传入 send_message 的 text 参数

修正后的代码示例

# 定位目标元素
element = browser.find_element_by_xpath("//div[@class='span12']")
# 提取元素内的可见文本内容
element_text = element.text
# 发送提取到的文本
context.bot.send_message(chat_id=update.message.chat_id, text=element_text)

额外说明

  • 如果需要获取元素的全部 HTML 源码而非可见文本,可以替换为 element.get_attribute('innerHTML')
  • 建议增加元素存在性判断逻辑,避免定位失败抛出异常中断程序

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:15:03