C#.net环境下Selenium WebDriver.csproj DevTools多版本编译报错问题
C# Selenium DevTools V85引用缺失报错解决方案
报错说明
编译WebDriver.csproj项目时提示以下命名空间引用缺失,找不到对应类:
using OpenQA.Selenium.DevTools.V85.Log using OpenQA.Selenium.DevTools.V85.Page; using OpenQA.Selenium.DevTools.V85.Runtime; using OpenQA.Selenium.DevTools.V85.Fetch; using OpenQA.Selenium.DevTools.V85.Network;
报错截图:

报错原因
- Selenium 4.4及以上版本的主包
Selenium.WebDriver不再内置旧版本Chrome的DevTools协议绑定,V85(对应Chrome 85版本)的绑定已被拆分为独立NuGet包,未安装对应包就会报引用缺失。 - 项目中Selenium.WebDriver版本与DevTools绑定版本不匹配。
- NuGet包还原异常,依赖未正确加载。
解决方法
方法1:安装对应版本的独立DevTools包
直接在NuGet包管理器搜索安装Selenium.WebDriver.DevTools.V85,或在包管理控制台执行命令:Install-Package Selenium.WebDriver.DevTools.V85
安装完成后重新编译即可。方法2:使用版本无关的DevTools API(更推荐)
无需硬编码指定Chrome版本号,适配所有支持的Chrome版本,不需要引入V85开头的特定版本命名空间,示例调用方式:var chromeDriver = new ChromeDriver(); var devTools = chromeDriver as IDevTools; var devToolsSession = devTools.GetDevToolsSession(); // 直接调用对应域的方法即可,不需要指定版本 await devToolsSession.Domains.Log.Enable(); await devToolsSession.Domains.Network.Enable();方法3:清理还原依赖
如果安装包后仍报错,删除项目根目录下的bin、obj文件夹,执行dotnet restore重新还原所有NuGet包,再编译项目即可。
内容的提问来源于stack exchange,提问作者Artha
相关产品推荐
相关产品推荐

