Selenium - Chrome网络驱动程序 - 仅限Html,无图像

时间:2013-08-24 22:45:24

标签: selenium selenium-webdriver selenium-chromedriver

我正在使用Selenium中的Chrome Web驱动程序进行大量测试。问题是,每次运行它时,都必须重新下载所有需要时间的网站图像。它不会保留这些图像的缓存。

所以我想设置要渲染的文件,哪些文件也不要。显然我希望Javascript和CSS文件仍然可以下载。但我特别想关掉图像。

这可能吗?如果没有,有没有办法启用缓存?因此,下次运行progran时,它可以从本地缓存中获取图像。

4 个答案:

答案 0 :(得分:3)

解决方案是再次加载相同的铬配置文件,它应该(可能不会)确保图像&其他类似的东西都被缓存了。

以下是加载特定配置文件的方法:

https://code.google.com/p/selenium/wiki/ChromeDriver

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
  capabilities.setCapability("chrome.switches", Arrays.asList("--user-data-dir=/path/to/profile/directory"));
  WebDriver driver = new ChromeDriver(capabilities);

对搜索结果进行了类似搜索,得出了这个结果 - Load Chrome Profile using Selenium WebDriver using java您可能会费心去看看。

答案 1 :(得分:2)

据我所知,从一个会话缓存到另一个会话是不可能的。

但是,如果您无头地运行该页面,则可以删除该页面。这将加载页面,但不渲染它(使其可见,加载图像)。

您可以使用HTMLUnitDriver,这是标准的,但有些过时,或者您可以使用PhantomDriver,它具有更现代的Javascript版本。

答案 2 :(得分:1)

"您可以使用HTMLUnitDriver" >>>小心这个!

请注意,由于HTMLUnitDriver与真实浏览器的实现不同,因此您可能会也可能不会在两者中获得相同的结果。 因此,如果您开始遇到奇怪的问题,例如使用Chrome通行证运行测试但使用HTMLUnitDriver运行测试则不会,请考虑使用浏览器驱动程序运行测试。我听说过looong故障排除来自同事的故事,他们不得不放弃以无头模式运行套件(即使用HTMLUnitDriver)。

注意:由于我无法对所选答案发表评论,因此我被迫"强迫"留下它作为答案。如果有人可以帮助我在评论中转换它,我将不胜感激!感谢

答案 3 :(得分:0)

对于缓存图像,你需要像squid或haproxy这样的东西,然后通过它代理你的selenium浏览器。