MSEdge启动失败:崩溃(无法访问Chrome)。

3

我是一个刚开始学习Selenium Python的新手。我尝试使用以下代码调用具有现有配置文件(Default)的Edge浏览器。但是一执行就会抛出以下异常。请问是否有人可以帮助我?我漏掉了什么吗?

edge_options = webdriver.EdgeOptions()
edge_options.add_argument("user-data-dir = C:/Users/XYZ/AppData/Local/Microsoft/Edge/User Data/Default")
edge_browser = webdriver.Edge(executable_path = "C:/Users/XYZ/ABC/msedgedriver.exe",options = edge_options )
edge_browser.maximize_window()

WebDriverException: 未知错误:MSEdge 启动失败:崩溃。 (Chrome 不可达) (从 msedge 位置 C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe 启动的进程不再运行,因此 MSEdgeDriver 假定 MSEdge 已崩溃。)

注意:如果我在没有以下行的情况下运行代码,则会调用 Edge 浏览器并正常工作。

edge_options.add_argument("user-data-dir = C:/Users/XYZ/AppData/Local/Microsoft/Edge/User Data/Default")

当我在没有以下行的情况下运行代码时,Edge浏览器被调用并正常工作:你确定吗? - undetected Selenium
1
是的,我在add_argument行上进行了注释并执行了代码,它调用了Edge浏览器,但是当我取消注释时,它显示了所述的异常。由于某些原因,我将不得不使用默认配置文件。 - Mr. XYZ
1个回答

4

我之前遇到过这个问题,那是因为后台有正在运行的Edge进程。解决方法是你可以在相同路径下备份你的User Data文件夹,并在Selenium中使用该文件夹:

  1. Back up your User Data folder in the same path. Here for example, I back up the User Data folder as User Data1:

    enter image description here

  2. Use User Data1 in your code to specify using Default profile when run Edge with Selenium:

    from selenium import webdriver
    from selenium.webdriver.edge.service import Service
    
    edge_options = webdriver.EdgeOptions()
    #Here you set the path of the back up profile ending with User Data1 not the profile folder 
    edge_options.add_argument("user-data-dir=C:\\Users\\XYZ\\AppData\\Local\\Microsoft\\Edge\\User Data1")  
    ser = Service("C:\\Users\\XYZ\\ABC\\msedgedriver.exe")    
    
    edge_browser = webdriver.Edge(options = edge_options, service=ser)
    edge_browser.maximize_window()
    

谢谢您的回复!我已经尝试了您提到的方法,不幸的是,它并没有起作用,而且出现了相同的错误:WebDriverException: unknown error: MSEdge failed to start: crashed. (chrome not reachable)。 - Mr. XYZ
如果您手动运行路径为 C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe 的 Edge 浏览器,它是否正常工作?您使用的是哪个版本的 Edge 和 Edge WebDriver?您使用的是哪个版本的 Selenium? - Yu Zhou
是的,当我手动启动Edge浏览器时它可以正常工作。我正在使用Selenium 4.1.0,Edge浏览器版本为98.0.1108.62(官方版本)(64位),并通过以下链接下载了相应的Web驱动程序 https://msedgedriver.azureedge.net/98.0.1108.62/edgedriver_win64.zip - Mr. XYZ
1
谢谢!我结束了 Edge 进程,现在它可以工作了! - Mr. XYZ
我认为问题与路径有关,因为我一开始使用的是这样的 edge_options.add_argument("user-data-dir=C:/Users/XYZ/AppData/Local/Microsoft/Edge/User Data1")' 后来改成了 edge_options.add_argument("user-data-dir=C:\Users\XYZ\AppData\Local\Microsoft\Edge\User Data1"),现在可以正常工作了。 - Mr. XYZ
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接