Python Selenium IE驱动调用driver.get方法卡滞无法继续执行怎么办?
Selenium IE驱动
driver.get()执行后卡住问题解决办法 核心原因
该问题是IE浏览器的安全设置、页面加载策略和驱动兼容性三类常见问题导致,对应解决方法如下:
- 问题1:IE保护模式设置不统一
这是最常见的触发原因,解决操作:
打开IE浏览器 -> 进入「Internet选项」-> 切换到「安全」标签页,将Internet、本地Intranet、受信任的站点、受限制的站点四个区域的「启用保护模式」勾选状态调整为完全一致(全部勾选或全部取消勾选),保存设置后重启IE即可。
也可以在代码中添加参数跳过保护模式校验,无需手动修改浏览器设置。 - 问题2:默认页面加载策略等待资源过多
IE驱动默认会等待页面所有静态资源、第三方脚本、iframe完全加载完成才结束get()调用,只要有一个资源加载超时就会永久卡住。 - 问题3:驱动与浏览器、Selenium版本不匹配
IEDriverServer版本和本地IE浏览器大版本不一致、或者驱动和当前Selenium版本不兼容也会触发卡住问题。 - 问题4:浏览器缩放比例非100%
IE缩放比例不是默认100%时,驱动会出现交互异常,也可能导致加载卡住。
修复代码示例
from selenium import webdriver from selenium.webdriver.ie.options import Options ie_options = Options() # 跳过保护模式设置校验 ie_options.ignore_protected_mode_settings = True # 跳过缩放比例校验 ie_options.ignore_zoom_level = True # 修改页面加载策略:DOM加载完成就返回,无需等所有静态资源,可选值:normal/eager/none ie_options.page_load_strategy = 'eager' driver = webdriver.Ie( executable_path="C:\\users\\Marcel\\Downloads\\IEDriverServer.exe", options=ie_options ) # 可选设置页面加载超时时间,10秒超时后抛出异常不再阻塞 driver.set_page_load_timeout(10) try: driver.get("https://www.techwithtim.net/") except Exception as e: # 超时后可主动停止页面加载 driver.execute_script("window.stop()") # 后续代码可正常执行
额外兼容性校验
如果修改配置后仍然卡住,可核对以下版本匹配要求:
- IEDriverServer的大版本和本地IE浏览器的大版本保持完全一致
- Selenium 4.x版本需要搭配对应支持Selenium4的IEDriverServer,不要使用过旧的3.x驱动版本
内容的提问来源于stack exchange,提问作者Marcel Koop
相关产品推荐
相关产品推荐

