Python + Selenium  自动化测试问题

问题:

selenium.common.exceptions.NoSuchDriverException: Message: Unable to obtain driver for MicrosoftEdge using Selenium Manager.

表明:该错误表明Selenium无法通过Selenium Manager自动获取Microsoft Edge浏览器驱动。

问题原因

  1. 驱动版本不匹配
    Edge
    浏览器驱动(msedgedriver)版本必须与浏览器本体版本严格对应,自动获取失败时需手动下载匹配版本
  2. 驱动文件位置错误
    驱动未放置在Python解释器目录或系统PATH包含的路径中,导致Selenium无法定位
  3. Selenium版本兼容性
    Selenium 4
    以下版本不支持Edge的自动驱动管理,需升级到Selenium 4

解决方案步骤

1. 确认Edge浏览器版本

通过浏览器地址栏输入 edge://settings/help 查看完整版本号(如 120.0.2210.91

2. 手动下载匹配驱动

  • 访问Microsoft官方驱动下载页:
    Microsoft Edge WebDriver
  • 选择与浏览器版本完全一致的驱动下载(注意x86/x64架构)

3. 配置驱动路径

  • 方法A:将解压后的msedgedriver.exe放入Python解释器目录
    通过以下代码获取解释器路径:
import sys
print(sys.executable)


C:\Users\batytao\PycharmProjects\PythonProject\.venv\Scripts\python.exe
  • 方法B:添加驱动所在目录到系统环境变量PATH

4. 代码中显式指定驱动路径(本人实测试,方法正常可行推荐使用)

from selenium import webdriver
from selenium.webdriver.edge.service import Service

# 指定驱动路径
service = Service(executable_path=r'C:\Program Files\edgedriver\MicrosoftWebDriver.exe')
#初使化浏览器
driver = webdriver.Edge(service=service)
driver.get("https://www.baidu.com")
from selenium import webdriver
from selenium.webdriver.edge.service import Service

# 指定驱动路径
service = Service(executable_path=r'C:\Program Files\edgedriver\MicrosoftWebDriver.exe')

#添加detach选项防止浏览器闪退
options = webdriver.EdgeOptions()
options.add_experimental_option("detach", True)
# driver = webdriver.Edge(options=options)

#初使化浏览器
driver = webdriver.Edge(options=options,service=service)

#(注:可能是selenium版本原因driver = webdriver.Edge(executable_path=r"C:\path\to\msedgedriver.exe")  无法使用,无executable_path参数)

5. 升级Selenium

pip install --upgrade selenium

6. 其他注意事项

  • 若使用虚拟环境,需确保驱动文件位于虚拟环境的Python目录下
  • 部分Edge版本需将驱动重命名为MicrosoftWebDriver.exe
  • 添加detach选项防止浏览器闪退:
options = webdriver.EdgeOptions()
options.add_experimental_option("detach", True)
driver = webdriver.Edge(options=options)

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐