一、 selenium 1的原理

  selenium 1 包括以下两部分:selenium server、 Client Libraries组成

  1. selenium server

  selenium server负责控制浏览器的行为。主要有launcher,Http Proxy,selenium core。selenium core使用Selenium Server嵌入到浏览器页面中。实质上,selenium core是由JS函数组成,这样我们可以实现用程序对浏览器进行操作。

  2. client Libraries

  编写测试用例时控制selenium server的库

  3. selenium RC与TestCase之间的关系

   

  4. testCase 工作过程

  (1).测试案例(Testcase)通过Client Lib的接口向Selenium Server发送Http请求,要求和Selenium Server建立连接。

  为什么要通过发送Http请求控制Selenium Server而不采用其他方式呢?从上文可以看出,Selenium Server是一个独立的中间服务器(确切地说是代理服务器),它可以架设在其他机器上!所以测试案例通过发送HTTP请求去控制Selenium Server是很正常的。

  (2).Selenium Server的Launcher启动浏览器,把Selenium Core加载入浏览器页面当中,并把浏览器的代理设置为Selenium Server的Http Proxy。

  (3).测试案例通过Client Lib的接口向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core执行操作浏览器的动作。

  (4).Selenium Core接收到指令后,执行操作。

  (5).浏览器收到新的页面请求信息(因为在(4)中,Selenium Core的操作可能引发新的页面请求),于是发送Http请求,请求新的Web页面。

  由于Selenium Server在启动浏览器时做了手脚,所以Selenium Server会接收到所有由它启动的浏览器发送的请求。

  (6).Selenium Server接收到浏览器的发送的Http请求后,自己重组Http请求,获取对应的Web页面。

  (7).Selenium Server的Http Proxy把接收的Web页面返回给浏览器。

二、 selenium 2-selenium webDriver原理

  1. 直接利用浏览器原生的API,封装成更加面向对象的selenium WebDriver API,直接操作浏览器页面里的元素,甚至操作浏览器本身。如:截屏、窗口大小、启动、关闭、安装插件、配置证书等。

  2. selenium 2是基于对象的测试。不同的对象拥有不同的操作方法。selenium 1则更多的基于方法的API。

  3. WebDriver还支持Android和ios上的浏览器

  4. 便于与junit和testNG结合

  5. selenium Grid实现多平台同时测试,满足兼容性测试需求

二、 selenium 3原理

1.selenium 3.0有了更新的特性加入,尤其是对Edge和safari原生驱动的支持,Edge驱动由MS提供,safari原生驱动由Apple提供。

2.在最新的Firefox方面,开始支持Mlzilla的geckodriver驱动,来驱动Firefox的控制。

3.selenium3.0可以支持firefox47以上版本,但是许要下载geckodriver.exe驱动,并添加到环境变量path下

Selenium1、Selenium2、Selenium3的区别,终于讲清楚了相关推荐

  1. 反渗透和和超滤究竟有和不同 今天终于讲清楚了

    反渗透和和超滤究竟有和不同 今天终于讲清楚了 随着净水器的普及,众多"概念化"的宣传,让消费者卷入了"漩涡",超滤反渗透傻傻分不清,分辨不出到底该买哪种净水器, ...

  2. 数据指标 VS 标签体系,到底有啥区别?终于讲清楚了。

    公众号后台回复"图书",了解更多号主新书内容 作者:接地气的陈老师 来源:接地气的陈老师 网上分享数据指标体系的文章很多,但讲数据标签的文章很少.实际上,标签和指标一样,是数据分析 ...

  3. Selenium1 Selenium2 WebDriver

    内容摘要: Selenium 1 原理 WebDriver WebDriver 组件 WebDriver 协议 Remote End 处理流程 Commands & Endpoints &am ...

  4. 网页加载出现没有合适的负载均衡器_终于讲清楚了,什么是负载均衡(Load balancing)...

    什么是负载均衡(Load balancing) 在网站创立初期,我们一般都使用单台机器对台提供集中式服务,但随着业务量越来越大,无论性能还是稳定性上都有了更大的挑战.这时候我们就会想到通过扩容的方式来 ...

  5. 【新冠疫情】5G到底能为抗疫做点啥,这篇文章终于讲清楚了

    云栖号资讯:[点击查看更多行业资讯] 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 3月24日,工信部网站发布关于推动5G加快发展的五方面18条措施,其中包括推动"5G+医 ...

  6. 4核处理器_买电脑选4核、6核还是8核,从业是十年的专家终于讲清楚了差异

    目前CPU市场的选择比较混乱,大佬各执一词,让很多新入坑的小伙伴摸不着头脑.而核心是CPU的一个重要的指标,对处理器的最终性能表现和实际体验有很大的影响,如何进行选择,也是目前CPU市场的难题. 萌新 ...

  7. matlab的udt,西门子PLC的UDT是干什么的?如何使用?终于讲清楚了

    plc中UDT数据类型的用法 一.UDT是什么 UDT是用户自定义数据类型. 用户有时为了方便,先创建一个udt(和创建db块一样),写好数据结构. 然后,在创建db块时,如果需要可以插入建好的udt ...

  8. selenium + python自动化测试unittest框架学习(一)selenium原理及应用

    unittest框架的学习得益于虫师的<selenium+python自动化实践>这一书,该书讲得很详细,大家可以去看下,我也只学到一点点用于工作中,闲暇时记录下自己所学才能更加印象深刻. ...

  9. selenium原理python_selenium + python自动化测试unittest框架学习(一)selenium原理及应用...

    unittest框架的学习得益于虫师的<selenium+python自动化实践>这一书,该书讲得很详细,大家可以去看下,我也只学到一点点用于工作中,闲暇时记录下自己所学才能更加印象深刻. ...

  10. 数据指标 VS 标签体系,到底有啥区别?

    1.数据指标 VS 标签体系,到底有啥区别?终于讲清楚了 1.1.数据指标,具体数字描述(比如,他身高180cm,体重200斤). 1.2.数据标签,概括性描述(比如,他是大胖子:他是高富帅):好的标 ...

最新文章

  1. 云计算安全:技术与应用
  2. Linux目录是否是否为空,在Linux上使用C检查目录是否为空
  3. avisynth_c.h:825:3: error: unknown type name ‘HMODULE’
  4. python 设置x轴_python matplotlib坐标轴设置的方法
  5. java merge json出错删除相同的json
  6. micropython stm32f103_MicroPython技术及应用定义
  7. linux 网络 read,Linux read命令的使用
  8. apache.camel_Apache Camel 3.2 – Camel的无反射配置
  9. 线条边框简笔画图片大全_超治愈萌系手帐素材大全 美食旅游花草人物花边都备齐了...
  10. c语言图片添加水印程序,[求助]C语言 bmp文件加上水印
  11. js基础-(一)-基本数据类型
  12. Linux学习之路(2-1)文件、目录与磁盘格式
  13. 计算机二级考试办公软件高级应用题型,计算机二级考试题型
  14. 嵌入式linux应用开发之常用shell脚本总结
  15. 百度翻译反向js——破解反爬虫
  16. Nginx安全配置手册
  17. RS-485什么情况下需要上下拉电阻?
  18. java后台实现支付宝支付接口、支付宝订单查询接口 前端为APP
  19. Canvas 填充渐变
  20. JS_02_函数_运算符_循环

热门文章

  1. 被 YYUC $is_developing 害惨了.
  2. 高等数学,线性代数 课后题解答
  3. 社交网络分析初步学习1.md
  4. 多媒体计算机涉及的关键技术有什么,多媒体计算机的关键技术
  5. 《软件工程导论》考研复习
  6. BP神经网络matlab代码
  7. 清华大学2008年硕士生招生参考书目录
  8. 数字电视加密技术工作原理(EMM ECM)
  9. python 大智慧自定义数据_大智慧自定义指数
  10. [经典好文] 谈笑色影间,人生本无忌 (转于色影无忌)