selenium - 对 Selenium 测试人员使用 Marionette FirefoxDriver 而不是旧的 Selenium FirefoxDriver 有什么好处?

标签 selenium selenium-webdriver selenium-firefoxdriver firefox-marionette

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

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

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

最佳答案

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

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

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

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

关于selenium - 对 Selenium 测试人员使用 Marionette FirefoxDriver 而不是旧的 Selenium FirefoxDriver 有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38916650/

相关文章:

selenium - 无法抑制文件下载的 Firefox 弹出窗口

java - 如何使用 WebDriver 验证下拉菜单的启用禁用值?

python - Selenium 与 Firefox - 优雅地将控制权留给用户

java - 此版本的 ChromeDriver 尚未在 Chrome 版本 75 和打开新浏览器窗口后出现 java.lang.IllegalStateException 上进行测试

java - 如何使用 java(selenium 网络驱动程序)从下拉列表中选择值

c# - Selenium C# WebDriver : Wait until element is present

java - startProfile(FirefoxProfile, File, String) 对于 FirefoxBinary 类型未定义

java - "java.lang.Error: Unresolved compilation problems"在使用 Maven 使用 TestNG 执行 Selenium 测试期间

java - 使用 selenium webdriver junit 测试自动化 saksfifthavenue.com 时无法关闭弹出窗口

facebook - 在 Selenium 测试中使用 Facebook 帐户