【问题标题】:C# Selenium testing with MS Edge driver使用 MS Edge 驱动程序进行 C# Selenium 测试
【发布时间】:2019-08-10 11:22:14
【问题描述】:

我正在使用 C#、Microsoft.VisualStudio.TestTools.UnitTesting 和 Selenium 来测试网站。

我知道 MS Edge 不再被开发,而是被基于 Chromium 的产品所取代。在此期间,我仍然希望能够告诉我的客户 Edge 是受支持的浏览器,直到更换发生。

但看起来使用 selenium EdgeDriver 需要一个有效的 microsoftwebdriver - 最新版本与最新版本的 Windows 不兼容 - 我的机器使用的是 Windows 10 版本 1809 / build 17763.379。

是否有人能够在 Windows 10 build 1809 机器上使用 Selenium 进行 Edge 测试?如果是这样,请显示一些示例代码和所需的步骤/参考/使用/等。

如果看到一些关于此的帖子,其中一些回复说这是不可能的,而其他人则说有可能 - 但那些说有可能的帖子并没有显示任何实际代码或参考名称。

【问题讨论】:

  • 不确定 C#,但我在 Windows 10 机器上成功尝试了 Python 和 Ruby。如果您有任何问题,请告诉我,我在 Python、ruby 上的表现如何(顺便说一句,我还没有开始使用 RemoteDriver)。
  • 使用 Edge 成功完成了 Grid 实现。如果您需要详细信息,请告诉我,我是如何配置节点和启动 Edge 的。
  • 您可以查看this article 以使用Edge WebDriver
  • supputuri - 是的 - 我想看看你是怎么做到的。在 chrome 和 Firefox 中,这样的一行实例化了驱动程序: IWebDriver driver = new FirefoxDriver(options);使用 Edge,根据旧文档,只要安装了 Microsoft Edge WebDriver,它就可以工作 - 但没有适用于 Win 10 版本 1809 / build 17763.379 的兼容 webdriver。
  • Zhi Lv - 谢谢 - 但那篇文章不是最新的,由于上面提到的 webdriver 问题,无法执行这些步骤。

标签: c# selenium microsoft-edge


【解决方案1】:

示例 C# 代码

        else if (AppSettings.Browser == "Edge")
        {
            EdgeOptions edgeOptions = new EdgeOptions()
            {
                UseInPrivateBrowsing = true,
            };
            driver = new EdgeDriver(edgeOptions);
        }

并删除所有对 MicrosoftDriver 的 Nuget 引用,清理解决方案 然后在 CMD Admin 模式下运行以下命令

DISM.exe /Online /Add-Capability /CapabilityName:Microsoft.WebDriver~~~~0.0.1.0

注意:此解决方案适用于 Microsoft Edge 18 或更高版本

【讨论】:

    【解决方案2】:

    好吧,在互联网上浏览了很长时间后,找到了解决方案!

    至少你必须删除你的NuGet包WebDriver(实际版本)并安装测试版,然后去这个网站https://www.nuget.org/packages/Selenium.WebDriver/4.0.0-beta2复制你想要的测试版nuget在我的情况下是4.0.0,然后打开你的Visual Studio(我的是 2019)工具>Nuget 包管理器>包管理器控制台在这里粘贴你的副本。 附言。从边缘铬下载

    using OpenQA.Selenium.Edge;
    public class Example Edger
    {
        private IWebDriver driver;
                         
        public void SetupTest()
        {
            driver = new EdgeDriver();
            driver.Manage().Window.Maximize();
        }
    }
    

    【讨论】:

      【解决方案3】:

      我向所有没有发布我最终找到的解决方案的读者道歉——这很简单。下面是实例化驱动的代码:

            var service = OpenQA.Selenium.Edge.EdgeDriverService.CreateDefaultService(@"C:\Drivers", @"msedgedriver.exe");
                          service.UseVerboseLogging = true;
                          service.UseSpecCompliantProtocol = true;
                          service.Start();
      
                          var options = new OpenQA.Selenium.Edge.EdgeOptions();
                          // For future reference - please check to see if there are options that should be set...
      
                          driver = new RemoteWebDriver(service.ServiceUrl, options);
      

      如您所见,我将最新的边缘驱动程序保存在名为“C:\Drivers”的目录中。始终可以从 selenium 网站下载页面 (https://www.selenium.dev/downloads/) 下载最新的驱动程序 - 展开该页面上的浏览器部分。

      【讨论】:

        【解决方案4】:

        您需要安装与系统中 edge 版本相同的 edge 驱动程序版本。要查找edge版本号,请转到设置->关于microsoft edge。从https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver下载正确的版本下载后,您需要将驱动程序的名称从msedgedriver.exe更改为MicrosoftWebDriver.exe。然后它会工作:)

        【讨论】:

          猜你喜欢
          • 2010-11-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-07-11
          相关资源
          最近更新 更多