Selenium经历了两个版本,selenium1.0和selenium2.0,本次仅介绍selenium2.0的原理,在selenium2.0主推的是webdriver,selenium2.0又名selenium webdriver
原理
webdriver是按照server-client的经典设计模式设计的,server就是remote server,可以是任意的浏览器,我们的脚本启动浏览器,跳转到特定的url等操作是以http请求的方式发送给被测server端,server接受请求并执行相应操作,并在response中返回执行状态、返回值等信息
简单介绍一下webdriver的工作原理:
1)启动浏览器后,selenium-webdriver会将目标浏览器绑定到特定的端口,启动后的浏览器则作为webdriver的remote server
2)客户端(测试脚本),借助comandexecutor发送http请求给server端
3)server端需要依赖原生的浏览器组件,转化webserver的命令为浏览器native的调用来完成操作
the webdriver write protocol是selenium自己设计定义的协议,这套协议非常强大,几乎可以操作浏览器的任何事情,包括打开、关闭、最大化、最小化、元素定位、元素点击、上传文件等。
webdriver write协议是通用的,也就是说不管Firefox driver还是chrome driver ,启动之后都会在某个端口启动基于这套协议的webserver
网友评论