2011-04-13 113 views
1

我試圖通過Selenium從網站下載圖片。我迄今發現的例子建議通過selenium檢索圖片URL,然後使用諸如cURL之類的HTTP庫下載圖片。通過Selenium/PHPunit訪問瀏覽器會話文件或緩存

由於在運行Selenium測試時圖片已經在第一個地方下載了,我發現爲每張圖片提出另一個單獨的請求並不是一個好主意。

有沒有一種方法可以通過Selenium/PHPunit從瀏覽器緩存中獲取圖片(或者在本地Selenium服務器將它們存儲在臨時會話文件夾中)?

謝謝。

回答

1

這是一個古老的問題,但自從我最近和Selenium一起工作以來,我想我會把這個放在這裏,讓任何人在這個問題上磕磕絆絆。

在我對Selenium的閱讀和實踐中,這裏的問題是瀏覽器緩存不是由Selenium直接處理的,所以訪問緩存的代碼必須基於每個瀏覽器,並且很可能變脆。

使用CURL方法可以保證獲取所需的圖像。

這將是巨大的,如果硒都允許訪問文件的緩存版本,只是因爲它可以採取截圖

你可以做到這一點PHPUnit中像這樣(就截圖足夠?):

require_once 'PHPUnit/Extensions/SeleniumTestCase.php'; 

class WebTest extends PHPUnit_Extensions_SeleniumTestCase 
{ 
protected $captureScreenshotOnFailure = FALSE; 
    protected $screenshotPath = 'C:\selenium\screenshots'; 
    protected $screenshotUrl = 'http://localhost/screenshots'; 

... (write tests here) 
} 

希望這有助於!