【问题标题】:Is there a Selenium WebDriver available for the Microsoft Edge browser?是否有可用于 Microsoft Edge 浏览器的 Selenium WebDriver?
【发布时间】:2015-07-14 17:04:19
【问题描述】:

截至本文发布之日,“Microsoft Edge”这个名称刚刚被正式宣布为新 Windows 10 的默认浏览器。

现在问这个问题可能为时过早,但我想知道是否有新的 Selenium WebDriver 可用,如果没有,是否有任何迹象表明我们可能要等多久才能看到开发出来的?

(Windows 10 的技术预览版已经发布,所以这对我来说似乎不是一个愚蠢的问题。)

【问题讨论】:

  • 你试过用边缘浏览器运行吗?
  • 我认为新浏览器没有任何此类公告。
  • 我安装了 Windows 10 的 Insider Preview,它同时安装了 IE 和 Edge(又名“Spartan Project”)。 selenium webdriver (IE) 当然会打开 IE。好消息是它似乎到目前为止有效。 Edge 是一个完全不同的浏览器,这意味着必须设计一个新的 WebDriver 来支持它。我想我已经准备好在它出现时对其进行测试......

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


【解决方案1】:

是的,Microsoft Edge 有一个 WebDriver 实现。它最初的可用性是announced on 23 July 2015。 Selenium 开源项目have been updated 中的语言绑定以利用此驱动程序实现,这些更新已在 Selenium 2.47 中发布。请注意,Java 语言绑定已重新发布为 2.47.1,以纠正最初的问题。初始实现has limited functionality,但Microsoft is committed 是为了实现功能齐全的驱动程序实现,因此即将进行更新。

【讨论】:

  • 非常感谢您的回复。这正是我所希望的信息类型。您碰巧有此信息的参考资料吗?
  • 考虑更新您的评论。您使用“有限功能”创建的链接不再有效。该列表中的所有内容现在都标记为“完成”。
  • 该链接显示了所有已实施的状态页面,但根本没有提及没有的任何内容。例如,切换到以 /session/:sessionid/frame 为结束点的帧,并没有在状态页面上列出,实际上也没有在驱动程序中实现。
  • 截至 2015 年 11 月,Web 驱动程序功能虽然越来越接近,但尚未完成。见Unknown Command issues
【解决方案2】:

微软提供了可用于 Edge 浏览器的 MicrosoftWebDriver。

  1. 需要根据操作系统内部版本号下载正确版本的 MicrosoftWebDriver

  2. 转到开始 > 设置 > 系统 > 关于并记下操作系统内部版本号。

  3. 从此链接下载正确版本的驱动程序 - https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

  4. 如果下载的文件是 .msi,则安装它以获取 .exe 驱动程序。对于其中一个版本,可以直接下载.exe。

  5. 下载 MicrosoftWebDriver.exe 后,我们可以使用 System.setProperty("webdriver.edge.driver", "driver location") 或使用环境变量在测试脚本中使用它

示例脚本是这样的 -

System.setProperty("webdriver.edge.driver","C:\\Program Files (x86)\\Microsoft Web Driver\\MicrosoftWebDriver.exe"); //put actual location
WebDriver driver = new EdgeDriver();
driver.get("your link");

详细信息请参阅本文 - http://automationtestinghub.com/selenium-3-launch-microsoft-edge-with-microsoftwebdriver/

【讨论】:

【解决方案3】:

Microsoft Edge driver for Selenium 可以使用库 webdrivermanager 自动下载(对于 Java),如下所示:

EdgeDriverManager.getInstance().setup();

变量 webdriver.edge.driver 也由 webdrivermanager 以 MicrosoftWebDriver.exe 的正确路径导出。

【讨论】:

  • ^( for java ) ...造成错误的印象。 Edge 的 Microsoft webdriver 可与任何 * 支持的 * selenium 编程 api 一起使用
  • 截至 2020 年 1 月,新语法为 WebDriverManager.edgedriver().setup(); +1 用于提及 webdrivermanager
【解决方案4】:

“如果不清楚,Microsoft Edge 将支持 WebDriver。它今天不可用,但正在开发 Q 中?#msedgesummit”来自 John Jansen 的推文 - “Microsoft 工程师。首席软件工程师(nee Test) Project Spartan (nee Internet Explorer) 的负责人。” 你可以在推特@thejohnjansen 上找到他并等待公告:)

【讨论】:

    【解决方案5】:

    先决条件:您的计算机上已安装 Windows 10

    1. 为您的构建下载指定的 Microsoft WebDriver 服务器版本(在我的情况下,它是适用于操作系统的 MicrosoftWebDriver.exe:Windows 10 Pro 64-bit (10.0, Build 14393))
    2. 用于 MS Edge 的 Selenium WD Java 代码如下:

      System.setProperty("webdriver.edge.driver", "D:\Ripon\MicrosoftWebDriver.exe");
      driver = new EdgeDriver();

    【讨论】:

      【解决方案6】:

      从 EdgeHTML 版本 18(随 Windows 版本 1809 一起提供)开始,不再有独立的驱动程序下载。您可以通过以下两种方式之一获取新驱动程序:

      • 开始 - 输入“管理可选功能” - 点击“添加功能” - 找到“WebDriver”
      • 在提升的命令提示符下输入以下内容 -“DISM.exe /Online /Add-Capability /CapabilityName:Microsoft.WebDriver~~~~0.0.1.0”

      https://blogs.windows.com/msedgedev/2018/06/14/webdriver-w3c-recommendation-feature-on-demand/#Qj75uxuFHccPmCW5.97

      旧版本仍可从以下位置获得: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

      更新: 看来版本 18 现在是旧版了,自从迁移到 Chromium 后,我们又重新安装了一个单独的 Web 驱动程序。正上方的链接仍会将您带到正确的驱动程序页面。

      【讨论】:

      • DISM 将可执行文件放在哪里?如果您不知道 webdriver 可执行文件在哪里,那么谁能运行以下命令? System.setProperty("webdriver.edge.driver", "MysteriousDirectory\MicrosoftWebDriver.exe"); driver = new EdgeDriver();
      • @Tihamer 我没有确切的答案,我使用以下方式启动 Edge:var options = new EdgeOptions(); var service = EdgeDriverService.CreateDefaultService(); var theDriver = new EdgeDriver(service, options); 所以我没有指定驱动程序的位置。
      【解决方案7】:

      感谢您的帮助,我的测试被阻止,搜索 selenium EdgeDriver 实现询问的“EdgeDriver.exe”,只找到 MicrosoftWebDriver。

      如果这可以帮助某人,我已经在 C# 中做了这个,基于你之前的答案:

      首先,你需要下载MicrosoftWebDriver nuget包,这个只会在编译时将MicrosoftWebDriver.exe复制到你的目标文件夹中

      private readonly string _localDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
      
      Environment.SetEnvironmentVariable("webdriver.edge.driver", _localDir + "MicrosoftWebDriver.exe");
      var driver = new EdgeDriver();
      

      希望这可以帮助某人。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多