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信息
全文完。
歡迎指正錯誤。
參考自: