通过Selenium / PHPunit访问浏览器会话文件或缓存

时间:2011-04-13 12:10:42

标签: firefox caching selenium download phpunit

我正在尝试通过Selenium从网站下载图片。到目前为止我发现的示例建议通过selenium检索图片URL,然后使用HTTP库(如cURL)下载图片。

由于在运行Selenium测试时已经首先下载了图片,因此我发现每张图片的另一个单独请求不是一个好主意。

有没有办法可以通过Selenium / PHPunit从浏览器缓存中获取图片(如果selenium服务器本地存储在临时会话文件夹中,可以在本地获取)?

感谢。

1 个答案:

答案 0 :(得分:1)

这是一个老问题,但是自从我最近一直在与Selenium合作以来,我想我会把这个放在任何偶然发现这个问题的人身上。

在我对Selenium的阅读和实践中,这里的问题是Selenium不直接处理浏览器缓存,因此访问缓存的代码必须基于每个浏览器,并且很可能是脆。

使用CURL方法可以保证获得所需的图像。

如果Selenium允许访问文件的缓存版本会很好,就像它可以截取屏幕截图一样(截图是否足够?)

你可以在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)
}

希望这有帮助!