谁知道Selenium对Firefox的长期支持计划?

谁知道Selenium对Firefox的长期支持计划?,selenium,selenium-webdriver,automation,qa,Selenium,Selenium Webdriver,Automation,Qa,我已经使用SeleniumWebDriver很久了。不久前,我在测试环境中将Firefox版本锁定为45.3.0 ESR,将WebDriver版本锁定为2.53.0。 原因很简单:当Firefox或WebDriver发布时,切换到更新版本的Firefox或WebDriver太麻烦了。换句话说,事情开始不像以前那样可靠了。 然后,WebDriver的版本越来越多地被标上“beta”后缀: v3.0.0-beta1 v3.0.0-beta2 v3.0.0-beta3 v3.0.0.beta4 我

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

  • v3.0.0-beta1
  • v3.0.0-beta2
  • v3.0.0-beta3
  • v3.0.0.beta4
我耐心地等待着,而StackOverflow上的博客和帖子中的人们正在描述如何使用这个测试版WebDrivers和新的木偶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驱动程序时,我是否做出了正确的选择。当我的客户遥遥领先时,我不能再坚持45.3.0 ESR版本的Firefox了


有更好理解Firefox的人能帮助并描述一下Selenium支持Firefox的路线图是什么,以及在大型项目中应该如何考虑它吗?

这是令人惊讶的,但有时真正有价值的答案隐藏在评论中,比如JimEvans的评论。评论可以随时删除

我提取它来回答这个问题,因为它确实帮助我理解:木偶可能会有不同的行为,因为它试图使用新出现的标准W3C方言,而不是其他浏览器正在使用的旧的非标准语言

吉姆·埃文说:


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

应该进一步指出的是,OSS方言旨在 最终被所有驱动程序用W3C方言取代。同样,模 不同之处包括Firefox需要外部可执行文件(仅 就像现在Chrome所需要的一样),应该很少甚至没有 更改您的实际WebDriver代码


我对firefox的Selenium路线图一无所知,但在我们公司,我们使用的是PhantomJS webdriver(我们也在用AJAX、JavaScript等测试网页……到目前为止没有问题)。在这种情况下,您根本不依赖任何浏览器。PhantomJS也是无头的,因此您可以在任何基于unix的服务器上运行测试,而无需GUI(在本例中,测试速度更快)。因此,如果你有选择权(而且你不必保证你的页面特别是在firefox上运行),那么它可能值得一试try@spcial,不幸或幸运的是,我需要保证我们的产品在Firefox和其他主要web浏览器上运行。但无论如何,感谢您为PhantomJS提供了一个很好的参考,我们知道它在需要使用它的情况下是可靠的。您看过Selenium、Firefox和木偶吗?部分答案是为了解释为什么Selenium项目的Firefox驱动程序不再工作,以及为什么Mozilla维护的木偶解决方案是前进的方向。Mozilla的解决方案可能有问题,但它是唯一一个祈祷在未来继续工作的解决方案。@JimEvans,谢谢你,这是一个有用的答案。您还可以澄清为什么Selenium团队在v.3.0.0的发行说明中明确说明geckodriver提供的
,它基于不断发展的W3C WebDriver规范,并在该规范中使用wire协议,该规范可能会在不通知的情况下更改
?若gecko驱动程序只是一个事务处理程序,正如您在回答中所描述的那个样,那个么一切都应该是透明的,我们测试人员不应该在意。但发行说明中的这句话暗示了另一种情况。Selenium WebDriver的语言绑定通过使用JSON over HTTP wire协议与远程端通信来驱动浏览器。该协议有两种方言。第一个源于开源项目,已经使用多年。第二种方法正在被W3C标准化,尚未完全定稿。木偶用的是后者。从WebDriver API代码的角度来看,方言应该是透明的,但是W3C规范方言的更改可能需要传播到语言绑定。