对于 Selenium 测试器,使用 Marionette FirefoxDriver 代替旧的 Selenium FirefoxDriver 有什么好处?

What are the benefits of using Marionette FirefoxDriver instead of the old Selenium FirefoxDriver for a Selenium tester?

上周有很多关于这个名为 Marionette 的新 FirefoxDriver 的传闻。要将 Firefox 与 Selenium 结合使用,我们过去常常使用 "old" Selenium FirefoxDriver。从 Firefox 48.0 开始,将需要使用由 Mozilla 开发的这个新的 FirefoxDriver。

我知道需要改变方向,让每个浏览器都支持和开发它的驱动程序,并让驱动程序独立于 Selenium。此外,如果Mozilla开发自己的驱动程序,那么修复问题和开发功能将会更快更容易。

我的问题是,对于那些使用 Selenium 框架创建自动化测试的人来说,使用 Marionette 而不是 "old" Selenium 支持的 FirefoxDriver 有什么好处吗? _(比如更好的性能,更好的兼容性...)

使用 Mozilla 提供的、基于 Marionette 的 Geckodriver 解决方案的主要优势在于它适用于 Firefox 48 及更高版本。 Selenium 项目提供和维护的遗留驱动程序不适用于 Firefox 48 或更高版本,并且永远不会适用于这些版本的 Firefox。

旧驱动程序作为 Firefox 扩展实现。当 WebDriver 启动 Firefox 时,此扩展安装在驱动程序使用的配置文件中。 Firefox 48 引入了两个禁用此浏览器扩展的新功能。第一个是所谓的 "electrolysis" 功能,或多进程 Firefox。电解改变了扩展程序必须以 Selenium 团队尚未花时间完全理解的方式处理浏览器的方式。

第二个更重要的要求是,所有浏览器扩展都必须由 Mozilla 签名,然后浏览器才能加载它们。后一个功能已经在 Firefox 的几个版本中,但从 48 开始,它就不能再被禁用。 WebDriver 浏览器扩展为 Firefox 浏览器引入了几个有效的安全问题,因此不会由 Mozilla 的安全团队签署。这反过来又会导致扩展无法运行,因此 Selenium 无法再与 Firefox 通信。基于 Marionette 的解决方案,首先由 Mozilla 开发和维护,被他们祝福用于自动化 Firefox,因此承诺它将继续与未来版本一起工作。

因此,将 Marionette 与 Firefox 48 及更高版本一起使用的主要好处是它可以工作,而其他解决方案则不会。