在Selenium测试中使用Marionette FirefoxDriver而不是旧的Selenium FirefoxD



上周有很多关于这个新的FirefoxDriver叫做木偶的噪音。为了在Firefox中使用Selenium,我们曾经使用"旧的"Selenium FirefoxDriver。从Firefox 48.0开始,将需要使用由Mozilla开发的新FirefoxDriver。

我明白需要改变这个方向,让每个浏览器都支持和开发自己的驱动程序,并获得独立于Selenium的驱动程序。此外,如果Mozilla开发自己的驱动程序,它将更快更容易地解决问题和开发功能。

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

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

遗留驱动程序作为Firefox扩展实现。当WebDriver启动Firefox时,这个扩展安装在驱动程序使用的配置文件中。Firefox 48引入了两个新功能来禁用这个浏览器扩展。第一种是所谓的"电解"功能,即多进程Firefox。电解改变了扩展必须处理浏览器的方式,而Selenium团队还没有花时间去完全理解。

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

所以在Firefox 48及更高版本中使用木偶的主要好处是它可以工作,而其他解决方案则不能。

最新更新