一、Selenium1.x时期主要使用Selenium RC(Selenium Remote Control)进来自动化测试。
1、Selenium RC分为:
(1)Selenium Server 负责控制浏览器行为
(2)Client Libraries 写测试用例时用来控制Selenium Server的库,测试用例通过调用Client Libraries来编写相关的代码。
2、Selenium RC工作原理:
3、自动化测试的过程是:
Selenium RC启动一个Selenium Server,将操作web元素的API调用转化为一段段Javascript。
在Selenium内核启动浏览器之后注入这段Javascript函数即Selenium Core,通过这些Javascript函数,我们才可以实现用程序对浏览器进行操作。
4、Selenium RC的缺点:
(1)不能处理本机键盘和鼠标事件
(2)不能处理弹出框、对话框
(3)Selenium RC使用Javascript注入技术,速度不够理想,稳定性大大依赖于Selenium内核对API翻译成的Javascript质量高低
二、Selenium2.x集成了Selenium和WebDriver的功能
1、Selenium2.x = Selenium1.x + WebDriver
所以,Selenium 2.0,又称 Selenium WebDriver。其原理是:使用浏览器原生的 WebDriver 实现页面操作
2、想要使用Selenium实现自动化测试,主要需要三个东西。
· 测试代码: 自动化测试代码发送请求给浏览器的驱动(Webdriver)
· Webdriver :解析这些自动化测试的代码,解析后把它们发送给浏览器
· 浏览器: 执行浏览器驱动发来的指令,并最终完成工程师想要的操作
3、Webdriver优缺点:
优点:WebDriver提供了另外一种方式与浏览器进行交互。那就是利用浏览器原生的API,封装成一套更加面向对象的Selenium WebDriver API,
直接操作浏览器页面里的元素,甚至操作浏览器本身,由于使用的是浏览器的原生API,速度大大提高。
缺点:不同的浏览器,对Web元素的操作和呈现存在不同程度的差异,实现方式不同。比如Chrome有专门的ChromeDriver,Firefox有FirefoxDriver等等
4、工作流程:
通俗一点的理解,可看下图: