(1).測試用例通過客戶端傳遞?Selenium的Lib接口?服務器發送壹個Http請求,請求Selenium?服務器建立連接。
為什麽要通過發送Http請求來控制Selenium?服務器而不是使用其他方法?從上面可以看出,硒?Server是獨立的中間服務器(具體是代理服務器),可以設置在其他機器上!所以測試用例通過發送HTTP請求來控制Selenium?服務器正常。
(2).硒?服務器的啟動器啟動瀏覽器,放Selenium?將內核加載到瀏覽器頁面,並將瀏覽器的代理設置為Selenium?服務器的Http?代理人.
(3).測試用例通過客戶端?Selenium的Lib接口?服務器發送Http請求,Selenium?服務器解析請求,然後通過Http?代理發送JS命令通知Selenium?核心執行操作瀏覽器的動作。
(4).硒?內核收到指令後,執行操作。
(5).瀏覽器接收新的頁面請求信息(因為在(4)中,Selenium?內核的操作可能觸發新的頁面請求),因此它發送Http請求來請求新的網頁。
因為硒?服務器篡改了瀏覽器,所以硒?服務器將接收它啟動的瀏覽器發送的所有請求。
(6).硒?服務器收到瀏覽器發來的Http請求後,重新組織Http請求,獲得相應的網頁。
(7).硒?服務器的Http?代理將接收到的網頁返回給瀏覽器。
因為瀏覽器同根政策,硒?RC中的硒?服務器需要在此代理模式下運行。