Selenium启动Chrome时抛出System.IO.IOException:句柄无效异常
解决方案:Selenium ChromeDriver 抛出 System.IO.IOException: The handle is invalid.
针对你遇到的异常,以下是几个直接可行的排查和解决步骤:
1. 严格匹配ChromeDriver与Chrome浏览器版本
你的Chrome浏览器版本是129.0.6668.59,但安装的ChromeDriver版本是129.0.6668.5800,小版本号不一致可能触发兼容性问题。请下载与浏览器完全匹配的ChromeDriver版本(即对应129.0.6668.59的驱动),替换现有驱动文件。
2. 显式指定ChromeDriver路径
避免依赖NuGet自动部署的驱动,手动指定路径确保加载正确:
// 替换为你的ChromeDriver实际存放路径 var driverService = ChromeDriverService.CreateDefaultService(@"C:\Your\ChromeDriver\Path"); var driver = new ChromeDriver(driverService); driver.Navigate().GoToUrl("https://www.google.com/");
3. 添加Chrome启动参数规避环境限制
部分环境(如CI服务器、受限用户账户)会限制Chrome启动,添加以下参数尝试解决:
var options = new ChromeOptions(); options.AddArgument("--no-sandbox"); // 禁用沙箱模式 options.AddArgument("--disable-dev-shm-usage"); // 避免/dev/shm内存不足问题 options.AddArgument("--headless=new"); // 若不需要可视化界面,可启用无头模式(可选) var driver = new ChromeDriver(options); driver.Navigate().GoToUrl("https://www.google.com/");
4. 修复NuGet包依赖
删除项目目录下的packages文件夹,然后在NuGet包管理器中执行还原操作,重新安装Selenium相关包,避免包文件损坏导致的异常。
5. 检查系统权限与干扰程序
- 确保运行测试的用户账户对ChromeDriver文件及所在目录有读写和执行权限;
- 临时关闭杀毒软件、防火墙等安全程序,排查是否存在拦截ChromeDriver或Chrome启动的情况。
内容的提问来源于stack exchange,提问作者swathi
相关产品推荐
相关产品推荐

