16

上周有很多关于这个名为 Marionette 的新 FirefoxDriver 的噪音。要将 Firefox 与 Selenium 一起使用,我们曾经使用“旧”的 Selenium FirefoxDriver。从 Firefox 48.0 开始,将需要使用 Mozilla 开发的这个新的 FirefoxDriver。

我知道需要改变方向以使每个浏览器都支持和开发其驱动程序,并使驱动程序独立于 Selenium。此外,如果 Mozilla 开发自己的驱动程序,应该会更快、更容易地解决问题和开发功能。

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

4

1 回答 1

30

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

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

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

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

于 2016-08-12T11:40:28.953 回答