使用Headless IE Driver启动IE报错HRESULT 80070012求助
解决无头IE驱动启动报错 HRESULT 80070012 的问题
看起来你遇到的是无头IE驱动启动时的资源占用或适配问题——毕竟常规IEDriverServer.exe能正常运行,说明你的基础Selenium配置是没问题的。针对你给出的报错和已尝试的方案,我整理了几个更针对性的排查方向:
确认无头驱动与IEDriverServer的版本兼容性
你手动启动headless_ie_selenium.exe时显示的是InternetExplorerDriver server (32-bit) 3.8.0.0,请确保你的Python Selenium版本和这个驱动版本完全匹配(比如Selenium 3.8.x)。版本不匹配是无头驱动常见的启动失败原因。彻底清理IE进程残留与临时文件
报错80070012 ('There are no more files.')通常和IE进程残留或临时文件耗尽有关:- 打开任务管理器,结束所有
iexplore.exe、IEDriverServer.exe和headless_ie_selenium.exe进程; - 打开IE的「Internet选项」→「常规」标签,点击「删除」按钮,勾选所有浏览历史记录选项(临时文件、Cookie、历史记录等)后删除;
- 手动删除IE临时文件目录的内容(默认路径:
C:\Users\<你的用户名>\AppData\Local\Microsoft\Windows\INetCache)。
- 打开任务管理器,结束所有
显式指定IEDriverServer的完整路径
虽然手动启动无头驱动时显示找到了IEDriverServer,但代码中可能存在路径识别问题,尝试显式指定:from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities caps = DesiredCapabilities.INTERNETEXPLORER.copy() caps['ie.ensureCleanSession'] = True # 替换为你的IEDriverServer.exe的绝对路径 driver = webdriver.Ie( executable_path="headless_ie_selenium.exe", capabilities=caps, service_args=["--IEDriverServerPath=C:\\full\\path\\to\\IEDriverServer.exe"] ) driver.get("https://www.google.com") # 注意补全协议头https:// print(driver.title)另外,你原代码里
driver.get("www.google.com")缺少协议头(https://),这也可能导致驱动启动异常,记得补上。检查权限与运行方式
- 尝试以管理员身份运行你的Python脚本;
- 确保
headless_ie_selenium.exe和IEDriverServer.exe所在的文件夹有读写权限,尤其是系统临时目录(C:\Windows\Temp)和用户临时目录。
修改IE注册表参数(谨慎操作)
这个方法针对IE多进程导致的启动冲突:- 打开注册表编辑器(
regedit.exe); - 定位到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main; - 右键新建「DWORD(32位)值」,命名为
TabProcGrowth,将值设置为0; - 重启电脑后再尝试运行代码。
- 打开注册表编辑器(
内容的提问来源于stack exchange,提问作者HaR
相关产品推荐
相关产品推荐

