Playwright-dotnet 与 Chrome 136 版本兼容性问题解析
问题背景
微软 Playwright-dotnet 项目是一个强大的浏览器自动化测试框架,近期有开发者反馈在使用 Chrome 136 版本时遇到了 LaunchPersistentContext 方法调用失败的问题。这个问题特别值得关注,因为它影响了依赖持久化用户数据的测试场景。
问题现象
当开发者尝试使用 Playwright-dotnet 的 LaunchPersistentContextAsync 方法启动 Chrome 136 时,会遇到超时异常。错误日志显示关键信息:"DevTools remote debugging requires a non-default data directory",这表明 Chrome 136 对远程调试的数据目录有了新的限制要求。
技术分析
Chrome 136 的安全变更
Chrome 136 引入了一项重要的安全变更:远程调试功能现在要求使用非默认的用户数据目录。这是 Google 为了增强安全性而做出的调整,旨在防止潜在的安全风险。当检测到使用默认用户数据目录(如 Chrome 的标准用户数据路径)时,Chrome 会拒绝建立远程调试连接。
对 Playwright 的影响
Playwright 依赖 Chrome 的远程调试协议来实现浏览器自动化。当 Chrome 136 拒绝连接时,Playwright 无法建立与浏览器的通信通道,最终导致超时错误。这个问题特别影响那些需要复用现有用户数据的测试场景,比如需要保持登录状态的测试用例。
解决方案
临时解决方案
目前可以通过添加启动参数来绕过这个限制:
var options = new BrowserTypeLaunchPersistentContextOptions
{
Headless = false,
Channel = "chrome",
Args = new[] { "--disable-features=DevToolsDebuggingRestrictions" },
Permissions = new[] {"clipboard-write", "clipboard-read"}
};
长期解决方案
- 使用自定义用户数据目录:创建一个专门用于测试的用户数据目录,而不是使用 Chrome 的默认目录
- 隔离测试环境:为每个测试会话创建独立的用户数据目录,避免共享状态带来的问题
最佳实践建议
- 在测试环境中使用专门配置的用户数据目录
- 考虑使用临时目录进行测试,确保测试环境的隔离性
- 定期关注 Chrome 的更新日志,了解可能影响自动化测试的变更
- 为重要的测试场景编写回退方案,以应对浏览器行为变更
总结
Chrome 136 的安全变更虽然给自动化测试带来了一些挑战,但也促使我们采用更安全的测试实践。开发者应该逐步迁移到使用独立用户数据目录的模式,这不仅能解决当前问题,还能提高测试的可靠性和安全性。Playwright 团队很可能会在未来版本中提供更优雅的解决方案来处理这一变更。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0194
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0121
MiMo-V2.5-Pro-FP4-DFlashMiMo-V2.5-Pro-FP4-DFlash 是驱动 MiMo-V2.5-Pro-UltraSpeed 的底层模型: FP4 量化骨干网络:对 MoE 专家采用 MXFP4 量化,同时保持模型其他部分的更高精度,在几乎无损质量的前提下,显著减小模型体积并降低内存带宽压力。 BF16 DFlash 草稿生成器:用于块扩散推测解码,每次前向传播可生成一整个块的 tokens,并让骨干网络一步完成验证。 两者协同作用,既降低了每参数的位宽,又减少了骨干网络前向传播的次数,而这两者正是万亿参数模型解码过程中的两大主要成本来源。Python00
JoyAI-EchoJoyAI-Echo,这是一个独立的、仅用于推理的版本,旨在实现分钟级多镜头音视频生成。它采用了经过蒸馏的DMD生成器、配对的跨模态记忆以及故事级别的一致性。其性能的核心在于,一个跨模态视听记忆库能够在长达五分钟的视频中保持角色外观和语音音色的一致性。同时,一个训练后处理流程将基于记忆的强化学习与分布匹配蒸馏相结合,实现了7.5倍的速度提升,显著增强了视觉质量和对齐效果。00
AstrBot✨ 易上手的多平台 LLM 聊天机器人及开发框架 ✨ 平台支持 QQ、QQ频道、Telegram、微信、企微、飞书 | OpenAI、DeepSeek、Gemini、硅基流动、月之暗面、Ollama、OneAPI、Dify 等。附带 WebUI。Python05
handy-ollama动手学Ollama,CPU玩转大模型部署,在线阅读地址:https://datawhalechina.github.io/handy-ollama/Jupyter Notebook06