【问题标题】:How to use Edge Chromium webdriver "unknown error: cannot find MSEdge binary"如何使用 Edge Chromium webdriver “未知错误:找不到 MSEdge 二进制文件”
【发布时间】:2019-11-04 02:26:03
【问题描述】:

我正在尝试将 WebDriver 用于带有 PostMan 的 Edge Chromium 版本,但我无法使其工作。

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 应该打开并能够执行其他命令

【问题讨论】:

  • 我尝试用 postman 和 edgedriver (chromium) 来测试这个问题。我收到与您类似的错误。 i.postimg.cc/XvPmJ2zy/315.png 我也尝试用 Chromedriver 测试它,但我得到了同样的错误。我们可能遗漏了任何步骤或传递了不正确的参数。我会尝试进一步搜索,并让您知道我的搜索结果。

标签: selenium selenium-webdriver webdriver microsoft-edge chromium


【解决方案1】:

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

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

(2) 尝试打开 PowerShell 窗口并尝试启动 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 驱动程序版本 (铬)浏览器。

【讨论】:

  • 感谢完美的工作,只有json { "desiredCapabilities": { "browserName": "edg", "version": "", "platform": "ANY" } } 结果:json { "value": { "build": { "version": "80.0.320.0 (c7c5bf4fbf6f8237906b4176f220d77983cd5054)" }, "message": "MSEdgeDriver ready for new sessions.", "os": { "arch": "x86_64", "name": "Windows NT", "version": "10.0.18980" }, "ready": true } }
  • 从您上次的评论看来,您的问题已经解决。我建议您将有用的建议标记为答案。它可以在未来帮助其他社区成员解决类似的问题。感谢您的理解。
  • 感谢您的建议
  • FatherlyNick:这真的应该是一个评论,而不是一个完整的答案(可笑的声誉系统 tbh);无论如何,要添加到 Deepak-MSFT 的答案中 - 添加环境变量后,请务必重新启动 IDE。我将我的 MSEdge 目录添加到 PATH 中,Eclipse 仍然会抱怨。在我关闭并重新打开 Eclipse 后一切正常。还要检查您是否指向 MSEdge.exe 或 MSEdge.exe 所在的目录。我注意到它只有在你指向目录而不是 .exe 时才有效。所以它会是这样的:C:\Program Files (x86)\Microsoft\Edge Dev\Application\
【解决方案2】:

这真的应该是一个评论,而不是一个完整的答案(荒谬的声誉系统 tbh);无论如何,要添加到 Deepak-MSFT 的答案中 - 添加环境变量后,请务必重新启动您的 IDE。

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

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

【讨论】:

  • 我把它放在了 cmets
猜你喜欢
  • 2018-02-10
  • 1970-01-01
  • 1970-01-01
  • 2020-05-26
  • 2019-10-06
  • 1970-01-01
  • 1970-01-01
  • 2021-04-02
  • 1970-01-01
相关资源
最近更新 更多