使用Selenium调用Edge默认Profile时出现Unknown Error问题排查
问题原因及解决方案
问题原因
- 依赖库废弃:你使用的
msedge.selenium_tools已被官方废弃,与当前Selenium版本兼容性存在问题,这也是运行时出现DeprecationWarning的核心原因。 - 配置文件占用:指定默认Edge用户数据目录时,若系统中存在后台运行的Edge进程(包括托盘残留进程),会导致驱动无法连接新启动的浏览器实例,触发"chrome not reachable"错误。
解决方案
1. 升级到Selenium 4
先卸载废弃的工具库,安装最新版Selenium:
pip uninstall msedge-selenium-tools pip install selenium
2. 使用Selenium 4原生Edge驱动配置
修改后的代码直接利用Selenium 4内置的Edge支持,无需额外工具库:
from selenium import webdriver from selenium.webdriver.edge.options import Options from selenium.webdriver.edge.service import Service options = Options() # 可选:指定Edge二进制文件路径,系统PATH已配置可省略 options.binary_location = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" # 指定默认用户数据目录和配置文件 options.add_argument(r"user-data-dir=C:\Users\UserName\AppData\Local\Microsoft\Edge\User Data") options.add_argument("profile-directory=Default") options.add_argument("--start-maximized") # 配置驱动服务(若系统未自动识别驱动,手动指定路径) service = Service(r'C:\Users\UserName\Desktop\Programs\msedgedriver.exe') driver = webdriver.Edge(service=service, options=options) driver.get("https://www.google.com") # 操作完成后彻底关闭浏览器及驱动 driver.quit()
3. 预处理:关闭所有Edge进程
运行代码前,打开任务管理器,结束所有msedge.exe进程(含后台残留),避免默认配置文件被占用。
替代方案:使用复制的配置文件
若不想关闭现有Edge进程,可复制默认配置文件到新目录,避免冲突:
- 复制
C:\Users\UserName\AppData\Local\Microsoft\Edge\User Data\Default到新路径,例如C:\Users\UserName\Desktop\EdgeCustomProfile - 修改代码中的参数:
options.add_argument(r"user-data-dir=C:\Users\UserName\Desktop\EdgeCustomProfile")
内容的提问来源于stack exchange,提问作者JBK2
相关产品推荐
相关产品推荐

