如何通过命令行以无头模式运行Selenium .NET测试?
以无头模式运行.NET Selenium测试的命令行方案
有两种常用方式实现,按需选择即可:
1. 修改测试代码配置无头模式(永久生效)
以Chrome为例,在初始化浏览器驱动的代码中添加无头启动参数:
var options = new ChromeOptions(); // Chrome 112及以上版本推荐使用新无头模式 options.AddArgument("--headless=new"); // 旧版Chrome可使用 --headless=chrome 或 --headless options.AddArgument("--disable-gpu"); // 部分环境需额外添加此参数 var driver = new ChromeDriver(options);
配置完成后,直接执行原命令即可:
dotnet test myprojectName.csproj
其他浏览器的无头配置逻辑类似:
- Firefox:给
FirefoxOptions添加--headless参数 - Edge:给
EdgeOptions添加--headless=new参数
2. 通过命令行传参切换无头模式(灵活切换)
如果需要在不修改代码的情况下,通过命令行控制是否启用无头模式,可按以下步骤操作:
第一步:修改测试代码读取命令行参数
// 读取命令行传入的Headless参数 var isHeadless = Environment.GetEnvironmentVariable("Headless")?.Equals("true", StringComparison.OrdinalIgnoreCase) ?? false; var options = new ChromeOptions(); if (isHeadless) { options.AddArgument("--headless=new"); options.AddArgument("--disable-gpu"); } var driver = new ChromeDriver(options);
第二步:执行带参数的测试命令
dotnet test myprojectName.csproj -- --Headless=true
若要恢复正常模式运行,只需将参数改为--Headless=false即可。
内容的提问来源于stack exchange,提问作者Kahn
相关产品推荐
相关产品推荐

