当前位置: 首页 > 面试题库 >

使用Marionette FirefoxDriver代替旧的Selenium FirefoxDriver作为Selenium测试仪有什么好处?

昌博易
2023-03-14
问题内容

上周,有关这个名为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。电解改变了Selenium团队没有花时间完全理解扩展程序处理浏览器的方式。

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

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



 类似资料:
  • 问题内容: 为什么我们不能仅将所有测试用例记录在 Selenium IDE中 ,将其导出到 Java / WebDriver 并在带有Eclipse的 WebDriver中 运行呢? 我需要明确的解释,因为我对使用WebDriver非常困惑! 谁能解释为什么IDE录制的脚本在WebDriver中失败? 问题答案: 为什么我们不能只在IDE中记录所有测试用例,将其导出到java / webdrive

  • 问题内容: 在PHP页面上的表单中,可以使用: 要么 要么 在表单的动作属性中。由于echo 不会传递要使用的变量,而您必须使用,为什么还要使用它呢? 我问是因为我花了一些时间才弄清楚这些变量没有随传递。谢谢。 问题答案: 该属性将默认为当前URL。这是“将表格提交到它来自的地方的最可靠,最简单的方法”。 没有理由使用,并且根本不提交表单(除非附加了事件处理程序来处理提交)。

  • GitHub copilot原来是用学生认证,现在突然失效了,jetbrains 搞了个AI Assistant,但是一直 在waitlist,问下还有什么好的替代

  • 问题内容: 在代码库中,我们继承了MediaTracker的用法,始终在每个代码块中本地完成。 认为这效率低下,我最终将其替换为静态实例和方法: 迄今为止,还没有不良影响。 还有另一种可能的方法- 将MediaTracker附加到每个组件(通常是Frame或JFrame),这是构造函数文档中强烈建议采用的方法。 所以我有两个问题: 如何以及为什么使用MediaTracker? 有什么选择? 问题答

  • 问题内容: 在Java 中JavaScript 和函数有什么好的替代方案? 问题答案: 使用正则表达式,您可以编写: 如果必须经常执行此操作,则可以创建并编译模式以获得更好的性能: 从性能的角度来看,一个快速的微基准测试(在JIT编译后)表明,正则表达式的方法比循环慢大约5倍(对于100万次ltrim,它是0.49s对0.11s)。 我个人发现正则表达式方法更具可读性,并且不易出错,但是如果性能成

  • 问题内容: 从Map.java的文档中- 在和静态工厂方法提供了一种方便的方法来创建不可改变的地图。 但是当我已经可以使用重载方法时 … … Map.ofEntries的用途是什么 返回一个不变的映射,其中包含从给定条目提取的键和值,并且条目本身未存储在映射中。 问题答案: __ 关于如何创建包含26个元素的Map的任何猜测? 您已链接的Map中的两个工厂方法之间的主要区别是: 返回一个不变的映射