Microsoft Edge经Microsoft WebDriver启动后无法保持打开的问题求助
针对你遇到的Edge浏览器短暂打开后就关闭的问题,结合你的系统版本、WebDriver版本和代码,我整理了几个实用的排查和解决方法:
修正WebDriver路径的空格问题
你的代码中路径末尾有个多余的空格:@"C:\FolderWhereMSWebDriverExeFile ";,这会导致驱动程序无法正确定位到MicrosoftWebDriver.exe文件,进而启动失败后闪退。请移除末尾空格,确保路径精确指向WebDriver可执行文件所在的文件夹,比如:var path = @"C:\WebDrivers\Edge"; // 替换为你的实际路径保持WebDriver实例的生命周期
在单元测试中,如果IWebDriver实例仅在方法内部创建且没有被类级别的变量持有,测试方法执行完毕后实例会被GC回收,导致浏览器直接关闭。建议将驱动实例提升为类成员,并在测试的Setup和TearDown阶段管理它:private IWebDriver _edgeDriver; [SetUp] public void TestSetup() { _edgeDriver = SetEdgeDriver(); } [TearDown] public void TestCleanup() { // 测试结束后手动关闭浏览器并释放资源 _edgeDriver?.Quit(); _edgeDriver?.Dispose(); }添加等待机制确保页面加载
有时候浏览器启动后还未完成初始化,测试逻辑就已执行完毕,导致浏览器被关闭。可以在驱动初始化后添加隐式等待,或者在测试中添加显式等待来确保页面元素加载完成:private IWebDriver SetEdgeDriver() { try { var path = @"C:\正确的WebDriver路径"; var option = new EdgeOptions(); option.PageLoadStrategy = PageLoadStrategy.Normal; var driver = new EdgeDriver(path, option); // 设置10秒的隐式等待,等待元素加载 driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10); return driver; } catch (Exception ex) { // 打印异常信息帮助排查问题 Console.WriteLine($"Edge驱动初始化失败:{ex.Message}"); throw; } }验证WebDriver与系统的兼容性
虽然你已经下载了对应版本的WebDriver,但还是建议再次确认:你的系统版本是16299.309,WebDriver版本5.16299确实匹配Windows 10 Fall Creators Update(版本16299)。同时确保WebDriver安装包没有损坏,可尝试重新解压或下载。以管理员权限运行测试
部分环境下,WebDriver需要更高权限才能与Edge浏览器正常交互。右键点击你的测试项目或测试运行器,选择“以管理员身份运行”,看是否能解决闪退问题。
内容的提问来源于stack exchange,提问作者T.Doan

