Selenium2原理
Selenium1是Thoughtworks公司的一个产品经理为了解决重复烦燥的验收工作,写的一个自 动化测试工具,其是用JS注入的方式来模拟人工的操作,但是由于JS的同源策略,也就是JS只能在个域中的页面进行通讯,如果跨域,则就不能访问了,所以导致了如果页面中有iframe 时,就无法操作了。
Selenium2是selenium+webdriver的产物,webdriver是google的产品, google收购selenium1后,整合了其自已的webdriver,推出了selenium webdriver,也就是我们所说的selenium2。Selenium2很好的解决了这个JS注入的安全性问题,其实现原理就从根本上改变了,selenium2在启动webdriver的过程中,会首先确认比较浏览器与driver是否匹配, 如果匹配,就会启动浏览器,然后把浏览器绑定在某一个端口,且在浏览器中启动一整套web service,这套web service使用了selenium2自已定义的协议,这套协议在主流浏览器中是通用 的,然后浏览器此时就作为了一个server, 测试脚本就作为了一个client, client发送的任何一个 selenium2的API都被转成了一个http request, 当web service接收到这个request后,就会响应,这套协议就会告诉浏览器这时候需要干什么事……