我必须使用什么驱动程序才能在 Edge Chromium 浏览器上运行 C# 中的 selenium 测试?

问题描述 投票:0回答:6

我正在尝试使用 Edge 浏览器在 C# 中启动一个简单的 selenium 测试,但我不能。指示我的错误如下:

OpenQA.Selenium.DriverServiceNotFoundException:'文件 C:\Selenium\Drivers\MicrosoftWebDriver.exe 不存在。驱动程序可以在 http://go.microsoft.com/fwlink/?LinkId=619687

下载

这是给我错误的代码行:

driver = new EdgeDriver ("C:\\Selenium\\Drivers");

在路径 C:\Selenium\Drivers 中我有以下驱动程序:msedgedriver.exe

从页面下载:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

该驱动程序与我的 Edge 版本相对应:Microsoft Edge 是最新的。 版本80.0.361.62(官方编译)(64位)

我做错了什么?我的错误是什么? 怎么解决呢?

c# selenium-webdriver automated-tests microsoft-edge
6个回答
8
投票

在撰写本文时,nuget 包

Selenium.WebDriver.MSEdgeDriver
下载的 Edgedriver 是
msedgedriver.exe
,但
EdgeDriver(...)
构造函数正在寻找
MicrosoftWebDriver.exe

我发现你可以像这样指定exe的名称:

IWebDriver driver = new EdgeDriver(
   EdgeDriverService.CreateDefaultService(".", "msedgedriver.exe"));

希望这对您有用。


2
投票
driver = new EdgeDriver ("C:\\Selenium\\Drivers\\msedgedriver.exe");

请从路径中删除不必要的空格,并将 .exe 文件包含在路径中


2
投票

您使用的硒版本是什么?如果您使用的是 Selenium 4.00-alpha03 及更早版本,您可以参考以下步骤来自动化 Microsoft Edge Chromium:

using OpenQA.Selenium.Edge; using OpenQA.Selenium.Remote; using System.Collections.Generic; using System.Threading; var service = EdgeDriverService.CreateDefaultService(@"C:\Selenium\Drivers", @"msedgedriver.exe"); service.UseVerboseLogging = true; service.UseSpecCompliantProtocol = true; service.Start(); var caps = new DesiredCapabilities(new Dictionary<string, object>() { { "ms:edgeOptions", new Dictionary<string, object>() { { "binary", @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" } }} }); var driver = new RemoteWebDriver(service.ServiceUrl, caps); driver.Navigate().GoToUrl("https://bing.com"); Thread.Sleep(2000); driver.Close(); service.Dispose();

注意: 将代码中的路径更改为您自己的路径。

------------------------------------------------- - - - - - - - - 更新 - - - - - - - - - - - - - - - - - --------------------------

在自动化 Edge Chromium 时,您需要使用

Selenium 4.00-alpha04 来使用浏览器特定的选项类:

using OpenQA.Selenium.Edge; using OpenQA.Selenium.Remote; EdgeOptions edgeOptions = new EdgeOptions(false); edgeOptions.BinaryLocation = @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"; var msedgedriverDir = @"C:\Selenium\Drivers"; var msedgedriverExe = @"msedgedriver.exe"; var service = EdgeDriverService.CreateDefaultService(msedgedriverDir, msedgedriverExe, false); service.EnableVerboseLogging = true; var driver = new EdgeDriver(service, edgeOptions); driver.Navigate().GoToUrl("https://bing.com"); Thread.Sleep(2000); driver.Close();

注意: 将代码中的路径更改为您自己的路径。


1
投票
您不需要下载

msedgedriver.exe

,甚至不需要知道它的路径在哪里。

如果您正在与团队合作或使用构建服务器,那么使用此 NuGet 包会

更好

Selenium.WebDriver.MSEdgeDriver


它会为您下载exe!而且您不必将其包含在源代码管理中。

这些说明告诉我们如何将 Edge/Chromium 与 Selenium UI 测试结合使用,但它没有提到这个非常好的 NuGet 包!

以下是有关如何初始化驱动程序的说明中的代码:

var options = new EdgeOptions(); options.UseChromium = true; var driver = new EdgeDriver(options);
    

0
投票
我也有同样的问题。一切看起来都很好,但仍然出现此错误。我更新了 selenium webdriver nugget 包。而且效果很好。


-1
投票

msedgedriver

 替换为 
MicrosoftWebDriver

将驱动复制到Edge浏览器所在路径。例如:

C:\Program Files (x86)\Microsoft\Edge\Application


然后,使用Edge浏览器路径初始化驱动:

driver = new EdgeDriver ("C:\Program Files (x86)\Microsoft\Edge\Application");
    
© www.soinside.com 2019 - 2024. All rights reserved.