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

Selenium调用getPageSource时出现Runtime.callFunctionOn反序列化错误求助

调用getPageSource()时出现反序列化错误的可能原因

可能的触发原因:

  • 页面内容异常:页面HTML体积过大,或者包含无法被Selenium序列化器解析的特殊字符、编码异常内容,导致Runtime.callFunctionOn返回的结果无法正常反序列化。getPageSource()依赖CDP接口获取DOM,异常内容会打破序列化逻辑。
  • 环境兼容性问题:尽管Chrome和ChromeDriver版本一致(123.0.6312.122),但Linux环境下的特定版本组合可能存在细微的CDP通信bug,引发数据序列化失败。
  • 页面未稳定加载:waitForPageToLoad方法可能未正确等待页面DOM完全稳定,调用getPageSource()时页面仍有动态内容在加载/修改,导致获取的DOM处于不完整状态,进而触发反序列化错误。
  • Selenium版本适配问题:当前使用的Selenium 4.16.1可能对Chrome 123的CDP接口支持不完善,底层调用的序列化逻辑存在适配缺陷。

排查与解决建议:

  • 先访问极简测试页面(如example.com)调用getPageSource(),若正常则说明原页面存在特殊内容问题,可尝试过滤或处理页面中的异常字符。
  • 升级Selenium版本至4.18.x系列(官方推荐适配Chrome 122-124的版本),验证兼容性问题是否解决。
  • 优化等待逻辑:改用显式等待关键元素加载完成,或设置pageLoadStrategy为eager,确保DOM稳定后再获取源码。
  • 在ChromeDriver启动参数中添加--disable-features=VizDisplayCompositor,部分Linux环境下可缓解此类序列化异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:44:54