lxsw4848 2025-05-03 22:57 采纳率: 0%
浏览 204

selenium报错“session not created: probably user data directory is already in use”

有没有人知道这个是为什么,我的selenium模块必须使用selenium.webdriver.edge.service.Service对象来手动指定驱动路径,而且这个路径必须是C:\Windows\System32\目录下的edge驱动才能正常运行,不然就会报错(即便是指定了相同的驱动文件但在其他路径下的也会报错,不指定也会报错)“selenium.common.exceptions.SessionNotCreatedException: Message: session not created: probably user data directory is already in use, please specify a unique value for --user-data-dir argument, or don't use --user-data-dir
”(我没有指定用户目录)现在的情况就是必须得手动指定System32目录下的edge驱动才能使用selenium,不然就不能运行,更换了python环境使用最新版本的selenium也是同样问题,请问有没有人知道原因的

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-05-03 22:58
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解决方案

    selenium报错“session not created: probably user data directory is already in use” 是因为 Selenium 在启动 Edge 浏览器时,尝试使用默认的用户数据目录,但是这个目录已经被其他进程占用了。

    解决方案是:

    1. 使用 selenium.webdriver.edge.service.Service 对象手动指定驱动路径,像你所做的那样。
    2. 在指定的驱动路径下创建一个新的用户数据目录,例如 C:\Windows\edge-profile,然后在 Service 对象中指定这个目录。

    代码示例:

    from selenium import webdriver
    from selenium.webdriver.edge.service import Service
    
    # 指定 Edge 驱动路径
    edge_driver_path = 'C:\Windows\edge.exe'
    
    # 指定用户数据目录
    profile_dir = 'C:\Windows\edge-profile'
    
    # 创建 Service 对象
    service = Service(edge_driver_path, service_args=['--user-data-dir', profile_dir])
    
    # 创建 Edge 浏览器对象
    driver = webdriver.Edge(service=service)
    
    # 使用 driver 对象
    driver.get('https://www.baidu.com')
    

    这样,Selenium 就会使用指定的用户数据目录,而不是默认的目录,从而解决报错问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月3日