1. 程式人生 > >webdriver工作原理-體驗webdriver傳送http的過程

webdriver工作原理-體驗webdriver傳送http的過程

webdriver使用c/s結構,通過向服務端傳送請求,服務端驅動瀏覽器執行相應操作。
下面通過構造http請求,向服務端傳送請求,來驅動瀏覽器。 本文使用java作為案例,需要用到的工具: 1.eclipse(已匯入了webdriver相應的jar包和log4j的jar包) 2.firefox(已安裝了RESTClient) 實現功能:通過構造http請求驅動瀏覽器,感受webdriver的工作原理。本文通過開啟百度頁面為例。 體驗步驟: 1.如下建立對應測試類,並執行。 package com.selenium; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.*; public class TestSelenium { private Logger logger = Logger.getLogger(TestSelenium.class); public static void main(String [] args){ PropertyConfigurator.configure("D:/tools/auto/src/config/log4j.properties"); WebDriver driver = new FirefoxDriver(); driver.get("http://www.baidu.com"); driver.quit();     } } 2.在控制檯查詢開啟百度網頁的http請求資訊。(日誌比較多,只截取了開啟百度網頁部分的請求)
從下圖可以看到客戶端向服務端傳送的http請求內容,使用的post請求。
3.將步驟一中的程式碼(driver.get("http://www.baidu.com")刪除掉。我們將模擬傳送請求的過程,來實現這行程式碼實現的功能。為了操作實現,需要把driver.quit()註釋掉。刪除後,再次執行。這時,只是打開了一個瀏覽器頁面。如下圖:
4.開啟firefox,並開啟REFTClient外掛。如下

5.根據步驟2中看到的http請求,構造post請求。注意sessionid需要替換為步驟3中得到的sessionid(就是下圖中那個以8開頭的比較長的一串東西)。

6.傳送後,檢視結果。可以看到步驟3中開啟的瀏覽器,執行了開啟百度網頁的動作。RESTClient端,收到服務端的response。