【问题标题】:Who knows long-term plans of Selenium support for Firefox?谁知道 Selenium 支持 Firefox 的长期计划?
【发布时间】:2017-02-26 08:37:45
【问题描述】:

我已经使用 Selenium WebDriver 很长时间了。不久前,我在测试环境中将 Firefox 版本锁定为 45.3.0 ESR,将 WebDriver 版本锁定为 2.53.0。 原因很简单:当 Firefox 或 WebDriver 发布时切换到新版本太麻烦了。换句话说,事情开始不像以前那样可靠了。 然后 WebDriver 的版本越来越多地带有“beta”后缀:

  • v3.0.0-beta1
  • v3.0.0-beta2
  • v3.0.0-beta3
  • v3.0.0.beta4

当人们在 StackOverflow 上的博客和帖子中描述如何使用这个 beta-WebDrivers 和新的 Marionette Firefox 驱动程序运行更新的 Firefox 版本时,我耐心地等待着。但这一切都闻起来像是一场严重的黑客攻击,并没有引发冒险升级大型生产项目的愿望。 现在终于我注意到 v3.0.0 发布了。但是,当我查看发行说明时,我会在“重要更改”部分看到以下内容:

* Firefox is only fully supported at version 47.0.1 or earlier. Support
  for later versions of firefox is provided by geckodriver, which is
  based on the evolving W3C WebDriver spec, and uses the wire protocol
  in that spec, which is liable to change without notice.
* You may wish to choose an ESR release such as 45.4.0esr or earlier.
* Firefox 47.0.0 is not supported at all.

我没有为此支付任何费用,我知道这是免费软件,但是,我现在仍然在认真考虑在为我的项目选择 Firefox 驱动程序时是否做出了正确的选择。当我的客户遥遥领先时,我不能再坚持 Firefox 的 45.3.0 ESR 版本了。

谁能帮助并描述一下 Selenium 支持 Firefox 的路线图以及在大型项目中应该如何考虑?

【问题讨论】:

  • 我对 Firefox 的 Selenium 路线图一无所知,但在我们公司,我们正在使用 PhantomJS 网络驱动程序(我们也在使用 AJAX、JavaScript 和其他东西测试网页......到目前为止没有问题) .在这种情况下,您根本不依赖任何浏览器。 PhantomJS 也是无头的,因此您可以在任何基于 unix 的服务器上运行测试而无需 GUI(在这种情况下速度更快)。因此,如果您有选择权(并且您不必保证您的页面尤其是使用 firefox 运行),那么可能值得一试
  • @spcial,不幸或幸运的是,我需要保证我们的产品可以在 Firefox 和其他主要网络浏览器上运行。但无论如何感谢 PhantomJS 的一个很好的参考,会知道它是可靠的,以防万一需要使用它。
  • 您是否看过 this answer 关于 Selenium、Firefox 和 Marionette 的信息?该答案的一部分致力于解释为什么 Selenium 项目的 Firefox 驱动程序不再有效,以及为什么 Mozilla 维护的 Marionette 解决方案是前进的方向。 Mozilla 的解决方案可能存在问题,但它是唯一一个祈祷未来继续工作的解决方案。
  • @JimEvans,谢谢,这是一个有用的答案。您能否澄清一下为什么在 v.3.0.0 的发行说明中 Selenium 团队明确声明 provided by geckodriver, which is based on the evolving W3C WebDriver spec, and uses the wire protocol in that spec, which is liable to change without notice?如果壁虎驱动程序只是您在回答中描述的交易者,那么一切都应该是透明的,我们测试人员不应该关心。但发行说明中的​​这一声明暗示了其他情况。
  • Selenium WebDriver 的语言绑定通过使用 JSON-over-HTTP 有线协议与远程端通信来驱动浏览器。该协议有两种方言。第一个起源于开源项目,已经使用了多年。第二个正在由 W3C 标准化,尚未完全确定。 Marionette 使用的是后者。从 WebDriver API 代码的角度来看,方言应该是透明的,但是 W3C 规范方言的更改可能需要传播到语言绑定。

标签: selenium selenium-webdriver automation qa


【解决方案1】:

这很神奇,但有时真正有价值的答案隐藏在 cmets 中,例如 JimEvans 的这个。评论可以随时删除。

我提取它来回答,因为它确实帮助我理解:Marionette 的行为可能不同,因为它尝试使用新出现的标准 W3C 方言,而不是其他浏览器正在使用的旧的非标准。

吉姆·埃文说:

Selenium WebDriver 的语言绑定通过通信驱动浏览器 远程端,使用 JSON-over-HTTP 有线协议。该协议 有两种方言。第一个,起源于开源项目, 已使用多年。二是规范化 W3C,尚未完全确定。后者使用的是 木偶。从 WebDriver API 代码的角度来看, 方言应该是透明的,但有机会改变 需要传播到语言绑定的 W3C 规范方言。

应该进一步指出,OSS 方言旨在 最终被所有驱动程序替换为 W3C 方言。再次,模 差异,例如需要 Firefox 的外部可执行文件(只是 就像今天的 Chrome 所需要的一样),应该几乎没有 更改您的实际 WebDriver 代码

【讨论】:

    猜你喜欢
    • 2018-01-16
    • 2012-09-03
    • 2012-05-17
    • 1970-01-01
    • 2019-10-21
    • 2011-01-26
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多