UI自动化测试之Selenium原理详解

Selenium简介

Selenium也是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Chrome等,支持多种语言编写测试测试脚本,目前支持的语言有Java,Python,Ruby,C#,当前Selenium最常用的版本是Selenium2和Selenium3。

Selenium 1.0 的工作原理

Selenium 1.0,又称 Selenium RC,其中 RC 是 Remote Control 的缩写。Selenium RC 利用的原理是:JavaScript 代码可以很方便地获取页面上的任何元素并执行各种操作。Selenium 1.0 的核心是,基于 JavaScript 代码注入。

由于Selenium 1.0已经基本不再使用,在这里就不做过多介绍。

Selenium 2.0 的工作原理

Selenium 2.0,又称 Selenium WebDriver,它利用的原理是:使用浏览器原生的 WebDriver 实现页面操作。其实现方式与Selenium 1.0已经是完全不同了。 Selenium 2.0 的核心是,运用了浏览器原生支持的 WebDriver。

Selenium 2.0 工作原理如图:

Selenium 2.0 执行测试的步骤:

1、当使用 Selenium2.0 启动浏览器 Web Browser 时,后台会同时启动基于 WebDriver Wire 协议的 Web Service 作为 Selenium 的 Remote Server,并将其与浏览器绑定。绑定完成后,Remote Server 就开始监听 Client 端的操作请求。

2、执行测试时,测试用例会作为 Client 端,将需要执行的页面操作请求以 Http Request 的方式发送给 Remote Server。该 HTTP Request 的 body,是以 WebDriver Wire 协议规定的 JSON 格式来描述需要浏览器执行的具体操作。

接口协议是:

POST /session/{session id}/element/{element id}/click

详情请参考www.w3.org/TR/webdriver/

3、Remote Server 接收到请求后,会对请求进行解析,并将解析结果发给 WebDriver,由 WebDriver 实际执行浏览器的操作。

4、WebDriver 可以看做是直接操作浏览器的原生组件(Native Component),所以搭建测试环境时,通常都需要先下载浏览器对应的 WebDriver。

Selenium 3.0

Selenium的架构图

Selenium 3.0是selenium最新发布版本,工作原理与Selenium 2.0大致相同。

Selenium2和Selenium3的区别在于:

1、去掉了对selenium rc的支持
2、全面拥抱java 8 。最低要求java 8 版本以上。
3、支持macOS (Sierra or later),支持官方的safaridriver。
4、通过ms官方的webdriver server支持Edge浏览器。只支持ie 9.0版本以上。
5、通过Mozilla官方的geckodriver来支持firefox。火狐从47版本开始使用Gecko引擎,该引擎支持多进程。

 

 

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值