How to use Edge Chromium webdriver "unknown error: cannot find MSEdge binary"

How to use Edge Chromium webdriver "unknown error: cannot find MSEdge binary"

我正在尝试将 Edge Chromium 版本的 WebDriver 与 PostMan 一起使用,但无法正常工作。

WebDriver 下载:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ 文档:https://docs.microsoft.com/en-us/microsoft-edge/webdriver

我尝试在系统PATH环境变量中添加Edge Chromium和Webdriver,没有区别。我认为 java 中的 selenium 实现与 Edge Chromium Webdriver

一起工作
msedgedriver.exe --port 9515

POST localhost:9515/会话

{
   "capabilities":{
      "firstMatch":[
         {

         }
      ],
      "alwaysMatch":{
         "browserName":"MicrosoftEdge",
         "platformName":"windows",
         "goog:chromeOptions":{
            "extensions":[

            ],
            "args":[

            ]
         }
      }
   },
   "desiredCapabilities":{
      "browserName":"MicrosoftEdge",
      "version":"",
      "platform":"WINDOWS",
      "goog:chromeOptions":{
         "extensions":[

         ],
         "args":[

         ]
      }
   }
}
{
    "value": {
        "error": "unknown error",
        "message": "unknown error: cannot find MSEdge binary",
        "stacktrace": 
"Backtrace:\n\tOrdinal0 [0x00007FF6678D7C52+1932370]\n\tOrdinal0 
[0x00007FF66783CDA2+1297826]\n\tOrdinal0 
[0x00007FF6677A0A51+658001]\n\tOrdinal0 [0x00007FF667710F1F+69407]\n\tOrdinal0 
[0x00007FF66770EF02+61186]\n\tOrdinal0 [0x00007FF667737DBD+228797]\n\tOrdinal0 
[0x00007FF6677351AF+217519]\n\tOrdinal0 [0x00007FF66771706F+94319]\n\tOrdinal0 
[0x00007FF66771822E+98862]\n\tOrdinal0 
[0x00007FF66785B531+1422641]\n\tGetHandleVerifier 
[0x00007FF6679991E9+656297]\n\tGetHandleVerifier 
[0x00007FF667998F81+655681]\n\tGetHandleVerifier 
[0x00007FF6679A104C+688652]\n\tGetHandleVerifier 
[0x00007FF6679999C3+658307]\n\tOrdinal0 
[0x00007FF66785177E+1382270]\n\tOrdinal0 
[0x00007FF66785D9D6+1432022]\n\tOrdinal0 
[0x00007FF66785C84D+1427533]\n\tBaseThreadInitThunk 
[0x00007FF909056FD4+20]\n\tRtlUserThreadStart [0x00007FF90AB5B1F1+33]\n"
    }
}

WebDriver 应该打开并能够执行其他命令

我建议您参考以下步骤可能有助于解决问题。

(1) 首先尝试为您的 Edge (chromium) 应用程序设置环境变量。

(2) 尝试打开 PowerShell window 并尝试启动 Edge Web 驱动程序。

(3) 启动 Postman 应用程序并尝试使用 http://localhost:9515/session 作为 POST 请求。

(4) 添加下面的代码作为请求的主体。

{
    "desiredCapabilities": {
            "nativeEvents": false,
            "browserName": "edg",
            "version": "",
            "platform": "ANY",
            "javascriptEnabled": true,
            "takesScreenshot": true,
            "handlesAlerts": true,
            "databaseEnabled": true,
            "locationContextEnabled": true,
            "applicationCacheEnabled": false,
            "browserConnectionEnabled": true,
            "cssSelectorsEnabled": true,
            "webStorageEnabled": true,
            "rotatable": true
    }
}

(5) 尝试发送请求。

参考:

SeleniumHQ/selenium

备注:

  • 您的环境变量应该正确设置并引用到您的 边缘(铬)正确。

  • 在您的 Edge 中使用受支持版本的 Edge Web 驱动程序 (chromium) 浏览器。

这真的应该是一个评论而不是一个完整的答案(可笑的信誉系统 tbh);无论如何,要添加到 Deepak-MSFT 的答案 - 添加环境变量后一定要重新启动你的 IDE.

我将 MSEdge 目录添加到 PATH,Eclipse 仍然会报错。在我关闭并重新打开 Eclipse 后一切正常。

还要检查您是否指向 MSEdge.exeMSEdge.exe 所在的目录。我注意到它只有在您指向目录而不是 .exe 时才有效。 所以它会是这样的:C:\Program Files (x86)\Microsoft\Edge Dev\Application\

我确实遇到了同样的问题,相信我,我尝试了所有可能的事情,但你知道是什么帮助了我,虽然这对你来说可能听起来很蹩脚,Edge 浏览器版本很旧,当我更新它时,它对我有用,错误已解决,也请试一试

与 Chrome 浏览器不同,它不会抛出浏览器驱动程序版本和浏览器不兼容的错误。

您真诚的, 沮丧的自动化测试人员