VS2017读取配置文件时遇System.ArgumentNullException错误求助
问题解决方案:Selenium自动化测试中的URL空指针与ChromeDriver USB错误
我来帮你一步步拆解并解决这两个问题,先从触发空指针异常的核心原因说起:
一、修复System.ArgumentNullException(URL为空)问题
这个错误的本质是你的程序没能从配置文件中读取到有效的URL值,而根源是bin/Debug目录下的配置文件被错误生成为.txt格式,而非标准的onlineShoesStore_2017.exe.config。
1. 修正项目配置文件属性
- 在Visual Studio解决方案资源管理器中找到
App.config文件 - 右键点击它选择「属性」
- 在属性面板中,将复制到输出目录设置为「始终复制」,将生成操作设置为「内容」
- 重新编译项目后,bin/Debug目录下会生成正确的
onlineShoesStore_2017.exe.config,而非txt格式
2. 验证配置读取逻辑(可选但推荐)
为了快速确认配置是否加载成功,可以在代码中添加一行验证:
var targetUrl = ConfigurationManager.AppSettings["URL"]; Console.WriteLine($"读取到的URL:{targetUrl ?? "空值"}"); // 打印结果排查 if (string.IsNullOrEmpty(targetUrl)) { throw new InvalidOperationException("未从配置文件读取到有效URL,请检查App.config配置"); } driver.Navigate().GoToUrl(targetUrl);
二、修复ChromeDriver的USB相关错误
这个问题通常是ChromeDriver与Chrome浏览器版本不匹配,或是Chrome的USB调试警告导致的,解决方法如下:
1. 对齐ChromeDriver与Chrome版本
- 打开Chrome浏览器,点击右上角三个点→帮助→关于Google Chrome,查看当前浏览器版本
- 下载与Chrome版本完全匹配的ChromeDriver(比如Chrome是118.x,就下载118.x版本的ChromeDriver)
- 将ChromeDriver.exe放到项目的bin/Debug目录,或配置系统环境变量让程序能找到它
2. 屏蔽USB相关警告(可选)
如果只是不想看到警告日志,可以在初始化ChromeDriver时添加参数屏蔽:
var chromeOptions = new ChromeOptions(); chromeOptions.AddArgument("--disable-usb-detection"); chromeOptions.AddArgument("--log-level=3"); // 仅显示严重错误日志 IWebDriver driver = new ChromeDriver(chromeOptions);
三、额外检查项
- 确认App.config中的URL没有拼写错误:你的配置里URL末尾的斜杠可以尝试去掉,避免潜在的路径问题
- VS2017和VS2019都出现相同问题,说明问题和IDE版本无关,重点还是配置文件输出属性或ChromeDriver版本
内容的提问来源于stack exchange,提问作者Tarishah
相关产品推荐
相关产品推荐

