webdriver是基于JSON Wire protocol 协议。client 和 server 是以JSON形式传递数据的。因此,webdriver无关语言。
client:指我们的测试代码
server:(remote server)任意浏览器。指责是等待client发送请求并作出响应
基本信息说完了,我们说一下在执行selenium脚本时,都发生了什么:
client(测试脚本)创建一个session --> 通过http协议发送restful请求给remote server --> remote server启动目标浏览器并绑定到指定端口,启动浏览器实例 --> server解析请求完成操作给client返回一个response
response的内容有 name、sessionId、status、value
介样的:
{"name":"findElement","sessionId":"285b12e4-2b8a-4fe6-90e1-c35cba245956","status":0,"value":{"ELEMENT":"{2192893e-f260-44c4-bdf6-7aad3c919739}"}}
那么。。session是啥呢?
我们都知道http协议是无状态的,无状态的意思就是说,这一次和上一次的请求是没有任何关系的、互不认识的、没有关联的。这种无状态的好处就是快速。
可是如果我们在一个页面登陆后,进入另一个页面的时候怎么办呢,是不是要重复的登陆一次呢
这时候我们就用到了cookie。cookie是把少量的信息存在用户的电脑上,它在一个域名下是全局的。
可是cookie由于存储在本地,用户可见可以随意修改,很不安全
这时候session就诞生了。
session是一种存储在服务器端的会话机制,很好的解决了cookie安全性的问题,也同样的快速。
session就是在一次会话中,解决2次HTTP的请求的关联,让它们产生联系,让2两个页面都能读取到找个这个全局的session信息
全文完。
欢迎指正错误。
参考自: