Chrome DevTools Protocol中Runtime.evaluate执行报错:Execution was terminated
Chrome DevTools Protocol执行JS表达式报错:Execution was terminated
问题描述
我维护着一个基于MasterDevs C#库分支的Web UI测试框架。为跟进安全修复,将无头Chrome可执行文件更新到较新版本后,处理完参数变更和新选项,仍存在核心问题:执行document.body.outerHTML这类简单JS表达式时,始终收到错误响应:
{ "id": 13, "error": { "code": -32000, "message": "Execution was terminated" } }
已执行的排查操作
- 每次执行JS前都会先调用
Runtime.enable接口 - 已指定执行上下文ID、框架ID并完成目标附加
- 尝试过多种建议的CDP选项组合
- 安装Selenium并通过Wireshark监听,发现Selenium会从
Target.attachToTarget响应中获取sessionId并随每个命令发送,照此操作后仅响应中多了sessionId字段,但错误未解决:
{ "id": 13, "error": { "code": -32000, "message": "Execution was terminated" }, "sessionId": "086FCC1BC3D0825D2B2C1A08742190CD" }
- 排查了所有能找到的Chrome命令行开关和选项(排查是否存在未知安全限制),无任何进展
当前Linux环境下Chrome启动脚本
#!/bin/bash ./chrome-linux/chrome --remote-debugging-port=9720 --disable-gpu --bwsi --no-first-run --enable-automation --disable-notifications --remote-allow-origins=* --disable-client-side-phishing-detection --disable-sync --disable-features=ChromeWhatsNewUI
困境
目前除了去翻阅海量Chromium源码外,完全没有其他头绪。论坛和网络搜索中,也找不到任何关于CDP返回“Execution was terminated”或错误码-32000的相关信息。
感谢您的帮助,
David
内容的提问来源于stack exchange,提问作者angus_thermopylae
相关产品推荐
相关产品推荐

