使用Selenium运行程序遇问题:点击Start按钮后Chrome报错
问题分析与修复方案
你的代码存在几个关键问题,导致运行报错:
- 语法错误:
ExecuteTest方法定义缺少括号,正确写法应为public void ExecuteTest() - URL格式错误:
GoToUrl传入的地址没有协议头(http/https),浏览器无法正确解析,需改为https://www.facebook.com - 测试框架配置问题:使用NUnit的
[SetUp]和[Test]属性时,类需标记为public,且缺少必要的命名空间引用 - WebDriver初始化方式错误:类级别直接实例化
ChromeDriver会导致资源管理问题,应在[SetUp]方法内初始化,[TearDown]方法内关闭释放资源 - 静态方法与实例字段冲突:
Main方法是静态的,但driver是实例字段,两者无法直接交互(使用NUnit时无需手动编写Main方法,测试框架会自动处理执行流程)
修正后的完整代码
using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using NUnit.Framework; namespace Sel { [TestFixture] public class FacebookLoginTest { private IWebDriver driver; [SetUp] public void Initialize() { // 初始化ChromeDriver,若ChromeDriver不在环境变量中,需指定路径:new ChromeDriver(@"你的ChromeDriver路径") driver = new ChromeDriver(); driver.Navigate().GoToUrl("https://www.facebook.com"); } [Test] public void ExecuteTest() { driver.Manage().Window.Maximize(); IWebElement emailBox = driver.FindElement(By.Name("email")); emailBox.SendKeys("jdaj@gmail.com"); } [TearDown] public void Cleanup() { // 测试结束后关闭浏览器,释放资源 driver.Quit(); driver.Dispose(); } } }
额外注意事项
- 确保已通过NuGet安装
Selenium.WebDriver和NUnit、NUnit3TestAdapter包 - ChromeDriver版本必须与本地安装的Chrome版本完全匹配(可在Chrome设置→关于Chrome中查看版本,下载对应ChromeDriver)
- 若运行时仍报错,可尝试在ChromeDriver初始化时添加选项,禁用沙箱模式:
var options = new ChromeOptions(); options.AddArgument("--no-sandbox"); driver = new ChromeDriver(options);
内容的提问来源于stack exchange,提问作者Kemal
相关产品推荐
相关产品推荐

