原文地址:https://www.cnblogs.com/imyalost/p/7242747.html#4109245
作者:老 张
1.关于Webdriver
设计模式:按照Server-Client的经典设计模式设计;
Server端:即Remote Server(远程服务器),可以是任意的浏览器,当脚本启动浏览器时,该浏览器就是Remote Server,它的职责是等待Client发送请求并做出响应;
Client端:我们的测试代码中的一些行为是以HTTP请求的方式发送给被测试浏览器——Remote Server,Remote Server接受请求,执行相应操作,并在Response中返回执行状态、返回值等信息;
2.WebDriver工作流程
-
WebDriver启动目标浏览器,并绑定至指定端口,启动的浏览器实例将作为WebDriver的Remote Server;
-
Client端通过CommandExcuter发送HTTPRequest给Remote Server的侦听端口(通信协议:the webdriver wire protocol);
-
Remote Server需要依赖原生的浏览器组件(比如:chromedriver.exe)来转化浏览器的native调用;
3.总结
selenium UI自动化三要素
- client: 测试代码
- server: 浏览器
- 中间件: 浏览器驱动(chromdriver.exe,geckodriver.exe等等)