Selenium使用Edge WebDriver报SessionNotCreatedException问题咨询
报错原因
当前代码的驱动传参方式适配Selenium 3及更早版本,在你本地安装的Selenium 4版本中,原webdriver.Edge()的位置参数已经不再接收msedgedriver路径值,传入的路径值被错误映射到其他配置项,最终生成的浏览器能力配置完全无效,触发SessionNotCreatedException: No matching capabilities found报错。
解决步骤
- 引入Selenium 4要求的驱动服务类,通过专属的Service对象承载本地msedgedriver的路径配置,不再使用直接传路径的旧写法
- 确认本地msedgedriver的版本和系统安装的Edge浏览器主版本号完全一致,版本不匹配也会触发同类会话创建失败报错
- 给msedgedriver二进制文件补充macOS系统的可执行权限,避免驱动进程无法启动
可直接运行的修正代码
from selenium import webdriver from selenium.webdriver.edge.service import Service as EdgeService # 定义Edge驱动服务,指定本地msedgedriver存储路径 edge_driver_service = EdgeService( executable_path=r"/Users/pranav/Downloads/edgedriver_mac64/msedgedriver" ) # 传入服务对象拉起Edge浏览器 driver = webdriver.Edge(service=edge_driver) # 验证启动效果 driver.get("https://example.com")
额外注意事项
- 给驱动文件加可执行权限的终端命令:
chmod +x /Users/pranav/Downloads/edgedriver_mac64/msedgedriver - 若使用Selenium 4.6及以上版本,无需手动指定msedgedriver路径,框架内置的自动管理工具会自动匹配对应版本的驱动完成下载、配置,手动指定路径的写法仅适用于需要锁定固定驱动版本的场景
- 不要把驱动路径写进EdgeOptions配置项中,该写法属于不规范传参,会直接导致能力配置构造失败
内容的提问来源于stack exchange,提问作者Pranav Pant
相关产品推荐
相关产品推荐

