webdriver.Edge启动没反应?从最小代码到EdgeDriver版本逐项定位
webdriver.Edge()执行后没反应,需要先区分三种情况:Python停在创建驱动这一行、程序已经抛出异常,或者脚本启用了无头模式,所以本来就不会显示窗口。先跑一段不带代理、扩展和自定义用户目录的最小代码,才能知道问题发生在会话创建前还是页面加载后。
最小代码与输出节点
在运行脚本的同一个Python环境中更新Selenium:
python -m pip install -U selenium
接着运行这段代码:
from selenium import webdriver
print("before Edge")
driver = webdriver.Edge()
print("session created")
driver.get("https://example.com")
print(driver.title)
driver.quit()
现代Selenium在没有提供驱动路径时,会调用Selenium Manager发现Edge、解析匹配驱动并写入缓存。只看到before Edge,通常要查驱动下载网络、缓存、权限或浏览器启动。能看到session created但页面不动,则继续检查代理、目标网址和后续等待代码。
代码包含--headless或--headless=new时,没有浏览器窗口属于正常表现。可暂时去掉该参数,或者通过页面标题、截图文件和进程退出码确认脚本是否实际执行。
按报错检查驱动、网络和Edge本体
| 现象或报错 | 常见原因 | 处理重点 |
|---|---|---|
| NoSuchDriver | Selenium Manager无法联网或找不到Edge | 升级Selenium,检查网络与Edge安装 |
| SessionNotCreated | 手动EdgeDriver与浏览器版本不匹配 | 核对版本号前三段 |
| 进程出现但无窗口 | 无头模式、残留进程、用户目录或Edge本体异常 | 去掉自定义参数并单独启动Edge |
| 创建会话长时间卡住 | 驱动下载、代理、安全软件拦截或缓存异常 | 保留完整异常和Service日志 |
只有手动管理驱动时才需要下载msedgedriver。先在Edge地址栏打开edge://settings/help,记录完整版本号。

随后在微软Edge WebDriver下载页选择相同通道与平台。浏览器和驱动四段版本号中的前三段必须一致。

需要固定驱动路径或收集日志时,使用Service,不要继续套用旧版executable_path写法:
from selenium import webdriver
from selenium.webdriver.edge.service import Service
service = Service(
r"C:\tools\msedgedriver.exe",
log_output="edgedriver.log"
)
driver = webdriver.Edge(service=service)
print(driver.capabilities["browserVersion"])
driver.quit()
如果手动点击Edge也打不开,应结束残留的msedge.exe进程,再通过Windows的已安装应用修复Edge。浏览器本体能正常启动、版本也匹配,最小代码仍失败时,再把完整异常、Selenium版本、Python版本和edgedriver.log放在一起分析,不要只截取最后一行报错。






