遇到Selenium异常:org.openqa.selenium.devtools.DevToolsException,请求协助排查
Selenium中DevToolsException(Network Request and Response)的原因与解决办法
常见原因
- 版本不兼容:Selenium的DevTools模块和浏览器(如Chrome)、对应驱动(如ChromeDriver)版本不匹配,导致网络请求交互时协议不兼容,触发异常。
- 网络监听冲突:重复注册DevTools网络事件监听(比如多次绑定
Network.requestWillBeSent或Network.responseReceived),或者代理软件、浏览器扩展干扰了DevTools的网络事件捕获流程。 - 浏览器进程异常:浏览器启动时DevTools端口未正常初始化,或者进程意外崩溃,导致Selenium无法和DevTools建立稳定连接,处理网络请求响应时出错。
- 异步操作未等待:处理网络请求响应时没有设置合理等待,Selenium在DevTools未返回完整数据前就执行后续操作,引发异常。
解决办法
- 严格匹配版本:确保浏览器和对应驱动的主版本完全一致,比如Chrome是118.x版本,就用118.x的ChromeDriver,避免跨版本使用。
- 清理重复监听:检查代码,确保每个DevTools网络事件只注册一次,使用完毕后调用
removeListener移除监听,避免冲突。 - 关闭干扰项:暂时关闭代理、广告拦截类扩展;自动化脚本中启动浏览器时添加
--disable-extensions参数禁用所有扩展,减少外部干扰。 - 优化异步等待逻辑:使用
WebDriverWait配合预期条件,或者在处理网络事件时添加合理延迟,确保网络请求响应数据已被捕获后再执行后续步骤。 - 重启实例重试:添加异常捕获,触发该异常时重启浏览器驱动实例后重试操作,解决偶尔出现的进程异常问题。
内容的提问来源于stack exchange,提问作者Hritik
相关产品推荐
相关产品推荐

