Selenium的实现原理
对于Selenium而言,V1.0和V2.0版本的技术方案是截然不同的,V1.0 的核心是Selenium RC,而V2.0 的和核心是WebDriver,可以说完全是两个东西。
Selenium 1.0的工作原理
Selenium 1.0又称Selenium RC,其中RC是Remote Control的缩写。Selenium RC利用的原理是:JavaScript代码可以很方便地获取页面上的renew元素并执行各种操作。
但因为“同源政策”,所以要想在测试用例运行中的浏览器中,注入JavaScript代码从而实现自动化的Web操作,Selenium RC就必须“欺骗”被测站点,让它误以为被注入的代码是同源的。
如何实现欺骗呢?这就是引入Selenium RC Server的根本原因,其中的Http Proxy模块就是用来“欺骗”浏览器的。Selenium RC的基本模块如下:
Selenium RC Server,主要包括Selenium Core,Http Proxy和Launcher三部分:
• Selenium Core,是被注入到浏览器页面的JavaScript函数集合,用来实现界面元素的识别和操作;
• Http Proxy,作为代理服务器修改JavaScript的源,以达到“欺骗”被测站点的目的;
• Launcher,用来启动浏览器完成Selenium Core的注入