2014-07-11 20 views
0

有沒有一種很好的方法來檢查一個GET請求的圖像,如https://api.google.com/v1/__x.gif,已經收到&在Selenium 2 WebDriver中使用php實現?Selenium 2 WebDriver:如何驗證圖像請求已被接收和完成?

最初我以爲我可以創建一個XHR請求並alert()responseText,使用assertEquals將我期望的字符串與實際輸出進行比較。很快意識到這是行不通的,因爲我想查看我正在測試的網頁的網絡請求。

更多的研究後,我發現了兩個非常不同的possibilites:

  • 首先是captureNetworkTraffic(從醬實驗室掛起的響應支持,看看這是否可能):

  • 第二個選項(我不完全明白)會設置一個代理服務器。

我是新來的,並且是涉及到服務器請求的初學者。預先感謝您的幫助!

回答

1

選項1和2是相同的;您使用代理來捕獲網絡流量。

在Webdriver中創建驅動程序實例時,您可以設置代理。這是一個服務器和端口,瀏覽器將通過它來引導所有網絡流量。代理可以做許多事情,例如創建模擬響應,操縱請求等,但在你的情況下,你希望代理記錄所做的請求,轉發到所需的服務器,記錄響應並將響應返回給瀏覽器。

如果你使用像Browsermob代理,你可以詢問試運行期間的請求作爲代理有一個API(如讓我的瀏覽器所做的最新要求,並聲稱這是一個POST)

似乎有成爲一個PHP庫來包裝與Browsermob實例的交互https://packagist.org/packages/chartjes/php-browsermob-proxy

所以,在你的測試中;

  • 開始代理
  • 創建使用代理設置
  • 轉到所需的頁面
  • 司機聲稱,請求在Browsermob取得

當然,其他簡單的方法可能是通過seleniuml從html獲取圖像src url,然後在測試中使用http客戶端發出GET請求。如果它返回一個圖像,那麼你可以說,來自ing標籤的URL起作用,並且這對你的測試可能是足夠好的。

+0

謝謝你,羅比。我毫無希望地迷失了這一點,現在對你的解釋有了更多的理解。 – ebbfl0

+0

如果您覺得它涵蓋了您的問題,請接受答案 –

相關問題