使用Selenium 4.8.1+InternetExplorerDriver的IE模式超时问题求助
解决Selenium IE驱动导航超时(无需关闭保护模式)
针对你遇到的Selenium 4.8.1使用IE驱动(连接Edge IE模式)时导航超时问题,以下是无需关闭保护模式的可行方案:
1. 统一IE所有安全区域的保护模式设置
IE驱动的核心要求是所有安全区域的保护模式状态必须一致(全部开启或全部关闭),而非必须关闭。操作步骤:
- 打开IE浏览器,点击右上角齿轮图标→「Internet选项」→切换到「安全」标签页
- 依次选中「Internet」「本地Intranet」「受信任站点」「受限制站点」四个区域
- 对每个区域勾选(或取消勾选)「启用保护模式」,确保四个区域的状态完全相同
- 点击「确定」,重启浏览器后重新运行代码
2. 通过注册表配置绕过保护模式检查
如果不想手动修改IE设置,可以通过添加注册表项让驱动自动处理区域不一致问题:
- 打开注册表编辑器(运行
regedit) - 根据系统位数选择路径:
- 32位系统:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE - 64位系统:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE
- 32位系统:
- 在该路径下右键新建DWORD(32位)值,分别命名为
iexplore.exe和IEDriverServer.exe,将两者的数值数据均设为0 - 关闭注册表编辑器,重启电脑后运行代码
3. 优化代码配置
移除风险较高的IntroduceInstabilityByIgnoringProtectedModeSettings配置,补充Edge IE模式的必要设置:
var ieOptions = new InternetExplorerOptions(); ieOptions.AttachToEdgeChrome = true; // 可选:指定Edge浏览器的安装路径(若驱动无法自动识别时添加) ieOptions.EdgeExecutablePath = @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"; // 确保每次会话干净无残留 ieOptions.EnsureCleanSession = true; // 忽略浏览器缩放级别(需保证缩放为100%,否则可能影响元素定位) ieOptions.IgnoreZoomLevel = true; WebDriver driver = new InternetExplorerDriver(ieOptions); driver.Navigate().GoToUrl("https://bing.com"); driver.FindElement(By.Id("sb_form_q")).SendKeys("Hello world"); driver.FindElement(By.Id("sb_form")).Submit();
额外注意:确保你使用的IEDriverServer.exe版本与Selenium 4.8.1及Edge/IE浏览器版本兼容,建议下载与Selenium版本匹配的驱动包。
内容的提问来源于stack exchange,提问作者Xia
相关产品推荐
相关产品推荐

