You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Selenium C#使用Firefox时geckodriver.exe被其他进程占用的错误

问题解决步骤

1. 清理残留驱动进程

报错的直接原因是之前测试异常退出导致geckodriver进程驻留,锁定了exe文件。可以执行以下命令强制结束所有相关进程:

taskkill /f /im geckodriver.exe
taskkill /f /im chromedriver.exe

也可以打开任务管理器,手动结束所有geckodriver.exe、chromedriver.exe进程。

2. 解决依赖冲突

你当前安装的依赖存在重复冲突:Selenium.Firefox.WebDriver和Selenium.WebDriver.GeckoDriver都是火狐驱动包,同时安装会导致两个包同时释放驱动文件,互相抢占锁定。
请卸载Selenium.Firefox.WebDriver,仅保留以下依赖即可:

  • Selenium.WebDriver
  • Selenium.WebDriver.ChromeDriver
  • Selenium.WebDriver.GeckoDriver

3. 修正驱动生命周期逻辑

你当前的代码存在两个严重问题:

  1. 直接在类级别实例化驱动,初始化时机不受NUnit生命周期管控
  2. 没有编写测试结束后的驱动释放逻辑,每次测试跑完驱动进程都会驻留

修正后的代码示例如下:

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using System;

public class BrowserTest
{
    IWebDriver driver;

    // 如需切换浏览器,修改此处的驱动实例化逻辑即可
    [SetUp] 
    public void Initialize()
    {
        // 实例化Chrome驱动
        driver = new ChromeDriver();
        // 实例化Firefox驱动时替换为下面的代码
        // driver = new FirefoxDriver();
        
        driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(30);
        driver.Navigate().GoToUrl("https://www.demo.bnz.co.nz/client/");
        driver.Manage().Window.Maximize();
        driver.Manage().Cookies.DeleteAllCookies();
    }

    [Test]
    public void Payees()
    {
        System.Threading.Thread.Sleep(10000); //verify if page is loaded
        IWebElement element = driver.FindElement(By.XPath("//*[@id='left']/div[1]/div/button"));//menu
        element.Click();
        driver.FindElement(By.XPath("//*[@id='left']/div[1]/div/div[3]/section/div[2]/nav[1]/ul/li[3]/a")).Click(); //payes
    }

    // 测试结束后自动释放驱动
    [TearDown]
    public void Cleanup()
    {
        if (driver != null)
        {
            driver.Quit();
            driver.Dispose();
        }
    }
}

4. 最后验证操作

完成以上修改后,先删除项目下的bin、obj文件夹,重新生成解决方案后再运行测试即可解决报错。

内容的提问来源于stack exchange,提问作者Yorda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 03:15:07