【问题标题】:Microsoft Edge WebDriver - Unexpected error. Unknown errorMicrosoft Edge WebDriver - 意外错误。未知错误
【发布时间】:2018-11-29 13:43:26
【问题描述】:

我在尝试让 Microsoft Edge 自动化与 Selenium 一起工作时遇到以下异常:

OpenQA.Selenium.WebDriverException:意外错误。未知错误

我正在使用 Selenium.WebDriver.MicrosoftDriver NuGet 包,版本 17.17134.0。

我的代码只是构造函数:

var driver = new EdgeDriver();

我尝试了各种建议的重载:

var driver = new EdgeDriver(new EdgeOptions());

var driver = new EdgeDriver(pathToMicrosoftWebDriverExecutable);

运气不好。我确保 Microsoft 的 WebDriver 版本与运行测试的机器上的 Edge 版本相匹配。

有什么方法可以在这里获得更多信息的错误消息?请注意,所有 Selenium 单元测试都可以在 Firefox 和 Chrome WebDrivers 上按预期工作,只有 Edge 不起作用。

【问题讨论】:

  • 关于这个问题的任何更新?我有同样的问题:/
  • @micnyk 我无法解决此问题,因此我们的 Edge 测试已过时。我没有花时间与 Microsoft 建立支持案例,这可能是这里的最佳选择。我很惊讶更多的人没有遇到同样的问题,我不确定为什么会发生在我们身上。
  • 这里有同样的问题。我猜人们只是很少使用 Edge,所以没有多少开发者会费心在其中进行自动测试......
  • 很久以后我仍然遇到同样的问题。我尝试按照下面的建议安装开发者模式,但也没有解决问题。我仍在寻找解决方案。

标签: c# selenium selenium-webdriver selenium-edgedriver


【解决方案1】:

我知道你提到你有相同的版本,但我自己也遇到了同样的错误,这就是我解决它的方法,所以希望这会有所帮助。

微软似乎不再将 Web 驱动程序作为独立版本发布,这可能是问题所在。 (See here for more details) 目前,Edge 的版本似乎是 17763,而 NuGet 包的版本是 17134。所以我要做的是进入并“通过转到设置 > 应用程序 > 应用程序和功能 > 管理将其作为独立设备安装可选功能。”上面的链接中包含一些替代方向。

安装后,我将驱动程序指向该位置,它终于工作了。

var driver = new EdgeDriver("C:\\Windows\\System32\\", edgeOptions);

【讨论】:

    【解决方案2】:

    我不确定如何或为什么,但这也对我有用。我收到讨厌的“消息:OpenQA.Selenium.WebDriverException:意外错误。未知错误”。

    我按照 Brian Murphy 的说明通过管理我的可选功能将 Microsoft Edge 驱动程序安装为独立的。我不知道 Windows 将它安装在哪里,而且我不需要更改我在 C# 中的任何代码,以及我之前失败的测试 Driver = new EdgeDriver(edgeService, options);

    又一次开始过去了。

    【讨论】:

    • 你做了什么来初始化edgeService?也许这是你工作的关键。我尝试不指定 c:\windows\system32 位置,但这对我不起作用。
    【解决方案3】:

    此答案不一定能解决所有边缘驱动程序问题,但我可以通过从此处下载与我安装的边缘版本匹配的特定边缘驱动程序来克服此错误:

    https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

    就我而言,我使用的是 Edge 的“88.0.705.74”,所以我下载了:

    https://msedgedriver.azureedge.net/88.0.705.74/edgedriver_win64.zip

    下载驱动后,我在本地解压,但是当我在 C# 中指定目录时,它希望文件名是“MicrosoftWebDriver.exe”而不是“msedgedriver.exe”,因此我将其重命名为:

    EdgeOptions options = new EdgeOptions();
    IWebDriver edgeDriver = new EdgeDriver("C:\\Users\\[username]\\Downloads\\edgedriver_win64", options);
    

    现在,它加载了驱动程序,我刚刚遇到了其他几个错误,具体取决于我运行的机器和帐户。我能够让 Edge 导航到一个页面。

    【讨论】:

    • 更新至此:如果您按照 MS 的说明下载,您可能必须使用以下语法:_driver = new EdgeDriver(EdgeDriverService.CreateDefaultService(@"C:\bin\EdgeDriver", "msedgedriver.exe"), options);
    猜你喜欢
    • 2013-08-04
    • 2018-01-15
    • 1970-01-01
    • 2015-10-27
    • 2012-08-16
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多