调用IE模式Edge浏览器时出现org.openqa.selenium.SessionNotCreatedException错误
解决Selenium 4调用Edge IE模式时的SessionNotCreatedException错误
错误核心原因
错误HRESULT 80070002 ('The system cannot find the file specified.')表明Selenium无法找到指定的可执行文件或驱动程序,结合场景,大概率是IEDriverServer、Edge主程序路径不匹配,或IE模式配置未生效导致。
解决方案
1. 匹配IEDriverServer与Edge版本
- 确保使用的
IEDriverServer版本与你的Edge 105版本完全一致,下载对应系统架构(x64,你的系统为amd64)的驱动文件。 - 验证
GlobalSettings.IE_DRIVER_PATH指向的路径确实存在IEDriverServer.exe,检查路径无拼写错误(注意转义符或路径分隔符)。
2. 确认Edge可执行文件路径有效性
- 手动检查代码中指定的Edge路径
C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe是否存在:- 若Edge安装在非x86目录(如
C:\Program Files\Microsoft\Edge\Application\msedge.exe),需修正路径。 - 若Edge主程序位于带版本号的子文件夹中(如
Application\105.0.1343.53\msedge.exe),需更新路径到实际位置。
- 若Edge安装在非x86目录(如
3. 完善Edge IE模式系统配置
在Windows Server 2016上,需确保IE模式已正确启用:
- 通过组策略配置:
- 打开组策略编辑器,导航到
计算机配置>管理模板>Microsoft Edge。 - 启用
配置Internet Explorer集成,设置为Internet Explorer模式。 - 启用
配置Internet Explorer模式站点列表,指定包含目标应用站点的XML文件路径(若需强制站点用IE模式)。
- 打开组策略编辑器,导航到
- 或通过注册表配置:
在HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge下添加/修改以下键值:InternetExplorerIntegrationLevel(DWORD):值设为1(启用IE模式)。InternetExplorerIntegrationSiteList(字符串):设为站点列表XML的绝对路径(可选)。
4. 修正Selenium代码细节
- 修正方法名拼写错误:
setInternetExlopererForEdge改为setInternetExplorerForEdge,避免潜在逻辑问题。 - 添加必要的IE选项配置:
private static InternetExplorerOptions setInternetExplorerForEdge() { InternetExplorerOptions IEOptions = new InternetExplorerOptions(); IEOptions.attachToEdgeChrome(); IEOptions.ignoreZoomSettings(); // 忽略保护模式设置 IEOptions.introduceFlakinessByIgnoringSecurityDomains(); // 禁用IE增强保护模式 IEOptions.setCapability("ie.enableEnhancedProtectedMode", false); IEOptions.withEdgeExecutablePath("C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe"); return IEOptions; }
5. 检查权限与端口占用
- 以管理员权限运行测试程序,避免因权限不足导致无法启动驱动或Edge进程。
- 检查错误中提到的端口
52310是否被占用:打开命令提示符执行netstat -ano | findstr :52310,若有结果,结束对应进程或更换Selenium驱动端口。
内容的提问来源于stack exchange,提问作者Selenium Lover
相关产品推荐
相关产品推荐

