selenium的原理及其发展史

Selenium1 介绍

ThoughtWorks的测试人员为了减少手工测试,实现了一套基于javaScript语言的代码库,可分为Selenium IDE 、Selenium RC和Selenium Grid

其中Selenium IDE是Firefox的插件,负责录制和回放脚本,

Selenium Grid在不同的环境以并发的方式执行脚本,来缩短测试时间。

Selenium RC支持多浏览器、不同的汇编语言,

由于自身的是实现机制,selenium无法突破浏览器的沙盒限制(JavaScript的安全机制——同源策略,外部引用的JavaScript文件URL和当前网页的域名不一致,浏览器会拒绝只想此JavaScript文件中的代码),以至于很多场景无法实现。

Selenium2的介绍

Selenium1+webdriver

Webdriver 直接让测试工具调用浏览器和操作系统的本身提供的内置方法。更好的模拟真实环境。而且绕过JavaScript的沙盒限制,所以将这2个项目进行了合并。

Webdriver的原理。

由于客户端脚本(java, python, ruby)不能直接与浏览器通信,这时候可以把WebService(实际上就是浏览器厂商提供的driver, 比如IEDriver, ChromeDriver,它们都实现了WebDriver's wire protocol.)

当做一个翻译器,它可以把客户端代码翻译成浏览器可以识别的代码(比如js).客户端(也就是测试脚本)创建1个session,在该session中通过http请求向WebService发送restful的请求,WebService翻译成浏览器懂得脚本传给浏览器,浏览器把执行的结果返回给WebService,WebService把返回的结果做了一些封装(一般都是json格式),然后返回给client,根据返回值就能判断对浏览器的操作是不是执行成功

Selenium3的介绍

原文地址:https://www.cnblogs.com/AllenRandolph/p/9761391.html