Selenium 不同版本的区别

Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架。它是一款用于运行端到端功能测试的超强工具。您可以使用多个编程语言编写测试,并且 Selenium 能够在一个或多个浏览器中执行这些测试。

用“一个工具”这样的字眼来形容Selenium并不恰当。Selenium是一套WEB应用的测试框架,为了满足不同的需要,它提供了几个组件形成了所谓的“Selenium”家族。其家族成员后面的文章中有介绍。

起源

Jason Huggins,当时在ThoughtWorks工作,2004年发起了Selenium项目。Jason和他所在的团队采用Javascript编写一种测试工具来验证浏览器页面的行为;这个JavaScript类库就是Selenium core,同时也是seleniumRC、Selenium IDE的核心组件。Selenium由此诞生。

后来,在 Paul Hammant 加入团队后并指导开发第二种操作模式(后来成为“Selenium Remote Control”(RC))。

2007年,Jason Huggins加入Google。与其他人一样,Jennifer Bevan,他继续发展和稳定Selenium RC的功能。与此同时,ThoughtWorks的Simon Stewart开发了一个名为WebDriver的高级浏览器自动化工具。Simon希望能通过浏览器、操作系统的底层方法等一些手段来直接操作浏览器;这样就避免了在Java Script的沙箱环境里存在的那些限制了,Web Driver项目就此诞生!2009年,在Google测试自动化会议上,开发人员举行了一次会议,会议决定合并这两个项目,并称之为新项目Selenium Web Driver,即Selenium2.0。

2008年,Philippe Hanrigou(当时在ThoughtWorks)制作了“Selenium Grid”,它提供了一个中心,允许在任意数量的本地或远程系统上同时运行多个Selenium测试,从而最大限度地减少了测试执行时间。

Selenium 1 和 WebDriver 合并成一款性能更佳的产品 Selenium 2(或 Selenium WebDriver),该款产品发行于 2011 年。

Selenium 2 具有来自 WebDriver 的清晰面向对象 API,并能以最佳的方式与浏览器进行交互。Selenium 2 不使用 JavaScript 沙盒,它支持多种浏览器和多语言绑定。

 

Selenium 1.x

用下面的图来说明 Selenium 1.x 各部分的功能

Selenium由几个组件组成,每个组件在帮助开发web应用程序测试自动化方面都扮演着特定的角色。

Selenium IDE 是嵌入到Firefox 浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能。
那么什么情况下用到它呢?
快速的创建 bug 重现脚本,在测试人员的测试过程中,发现了bug 之后可以通过 IDE 将重现的步骤录制下来,以帮助开发人员更容易的重现bug。
IDE 录制的脚本可以可以转换成多种语言,从而帮助我们快速的开发脚本。
Selenium Grid

支持分布式测试,即可以在不同平台、不同浏览器的多台远程机器上同时运行Selenium测试脚本,从而提高测试效率,减少执行时间。

是一种自动化的测试辅助工具,Grid 通过利用现有的计算机基础设施,能加快WebApp的功能测试。利用Grid,可以很方便地同时在多台机器上和异构环境中并行运行多个测试事例。其特点为:

  • 并行执行
  • 通过一个主机统一控制用例在不同环境、不同浏览器下运行。
  • 灵活添加变动测试机

Selenium RC

(Remote Control) 

Selenium RC是一个用JAVA语言编写的服务端,可以处理测试脚本发送过来的HTTP请求,来操作浏览器。

是selenium 家族的核心工具,Selenium RC 支持多种不同的语言编写自动化测试脚本,通过selenium RC 的服务器作为代理服务器去访问应用从而达到测试的目的。
selenium RC 使用分Client Libraries 和Selenium Server。

  • Client Libraries 库主要主要用于编写测试脚本,用来控制selenium Server 的库。
  • Selenium Server 负责控制浏览器行为,总的来说,Selenium Server 主要包括3 个部分:Launcher、Http Proxy、Core。
Selenium Core 是被Selenium Server 嵌入到浏览器页面中的。Selenium Core就是一堆JavaScript函数的集合,就是通过这些JavaScript函数,我们才可以实现用程序对浏览器进行操作。
Launcher 用于启动浏览器,把Selenium Core 加载到浏览器页面当中,并把浏览器的代理设置为Selenium Server 的Http Proxy。

 

Selenium2.x

Selenium 2.x中包括了WebDriver。其实在Selenium2.0中主推的就是WebDriver这个模块。事实上WebDriver是Selenium RC的替代品,因为Selenium需要保留向下兼容性的原因,Selenium RC才没有被彻底的抛弃,如果使用Selenium开发一个新的自动化测试项目,那么我们强烈推荐使用Selenium2.0的WebDriver进行编码。

Selenium2.0 = Selenium1.0 + WebDriver

Selenium RC 的实质是在浏览器中运行一个JavaScript应用程序,使用每个浏览器内置的JavaScript解释器来解释和执行Selenium的命令集合。

Selenium WebDriver  与上述的Selenium RC是不同的。WebDriver针对不同的浏览器进行开发,取代了RC那样嵌入到被测试的WebApp程序中的JavaScript,使用了与浏览器更加集成的方式进行测试,避免了RC使用JavaScript而可能遇到的安全模型限制导致的问题等。

WebDriver是测试脚本的的核心。在测试脚本中,通过调用WebDriver对象的方法来操作浏览器。

简而言之,Selenium IDE是为了方便录制,Selenium Grid是为了提升执行效率,Selenium RC/WebDriver是脚本编写的核心。

Selenium RC的工作原理是,在测试脚本执行之前,需要启动Selenium服务端,通过注入JavaScript形成沙箱环境,在沙箱环境中完成测试脚本中指定的浏览器操作。

WebDriver是从浏览器外部来控制的,通过调用浏览器原生接口来驱动,完成页面操作。比如说,当我们的脚本操作Firefox浏览器的时候,WebDriver是用JavaScripts来调用API的,而当我们操作IE浏览器的时候,WebDriver就用C++了。

由于有一些页面元素在沙箱和浏览器上的展示有很大出入,因此调用浏览器原生接口或许是控制浏览器的最好方式了。但问题是,如果有新的浏览器问世,WebDriver API就无法支持,而Selenium RC可以。

Selenium RC与WebDriver合并之后,也就是Selenium2.0之后,对于主流的浏览器Chrome、IE、Firefox上的页面操作,可以基于各自的Driver文件,而无须启动服务端。同时,还支持RemoteWebDriver,使用方式与Remote Control一致。

 

Selenium 3.x

2016年10月 Selenium 3.x 发布了。

 

Selenium 4.x

 

现在,可以在Selenium官网下载最新的版本:https://www.selenium.dev/downloads/

Selenium对多浏览器的支持:Chrome、IE、Firefox、Safari、Opera、Edge

 

 

Selenium 3 和 Selenium 4的异同

Selenium 3 Selenium 4</
  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Selenium版本区别,可以简单概括为以下几个方面: 1. Selenium 1.x版本(也称为Selenium RC):Selenium 1.x是Selenium的早期版本,发布于2006年。它包括Selenium IDE和Selenium RC两个工具。Selenium IDE是一个Firefox插件,用于录制和回放测试脚本。Selenium RC允许使用多种编程语言(如Java、#、Python等)编写自动化测试脚本。 2. Selenium 2.x版本(也称为Selenium WebDriver):Selenium 2.x是Selenium的重要升级版本,于2011年发布。它引入了WebDriver,一种用于控制浏览器的API。Selenium WebDriver通过直接与浏览器通信,绕过了Selenium RC的限制,并提供了更稳定和可靠的自动化测试。与Selenium RC不同Selenium WebDriver不依赖于JavaScript注入,而是使用浏览器原生的自动化技术,如ChromeDriver、GeckoDriver和Microsoft WebDriver。 3. Selenium 3.x版本Selenium 3.x版本是在Selenium 2.x基础上的进一步改进和升级。Selenium 3.0版本支持了新的浏览器,如Edge浏览器,并废弃了一些不常用的功能,比如Selenium RC。 总体来说,Selenium从初始的Selenium 1.x版本逐步发展为Selenium 2.x版本,引入了WebDriver,提供了更强大的自动化测试功能。Selenium 3.x版本则是在此基础上的改进和升级。不同版本Selenium主要区别在于所支持的功能、API和浏览器的兼容性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Selenium 前世今生](https://blog.csdn.net/m0_67695717/article/details/126752617)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [Selenium 2.0与3.0的主要区别](https://blog.csdn.net/yoyocat915/article/details/80218877)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值