我正在尝试通过Selenium从网站下载图片。到目前为止我发现的示例建议通过selenium检索图片URL,然后使用HTTP库(如cURL)下载图片。
由于在运行Selenium测试时已经首先下载了图片,因此我发现每张图片的另一个单独请求不是一个好主意。
有没有办法可以通过Selenium / PHPunit从浏览器缓存中获取图片(如果selenium服务器本地存储在临时会话文件夹中,可以在本地获取)?
感谢。
答案 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)
}
希望这有帮助!