在Chrome开发工具“网络”选项卡中,我们可以通过单击“禁用缓存”复选框来禁用缓存。指
可以使用Selenium 4中的Chrome DevTools协议支持复制相同的行为。
我们可以使用Chrome DevTools协议中的'Network.setCacheDisabled'
Toggles ignoring cache for each request. If true, cache will not be used.
parameters
cacheDisabled
boolean
Cache disabled state.
示例来自 DevTools 的 Selenium Test
import org.openqa.selenium.devtools.network.Network;
@Test
public void verifyCacheDisabledAndClearCache() {
ChromeDriver driver = new ChromeDriver();
DevTools devTools = driver.getDevTools();
devTools.createSession();
devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.of(100000000)));
driver.get("http://www.google.com");
devTools.send(Network.setCacheDisabled(true));
devTools.addListener(Network.responseReceived(), responseReceived -> assertEquals(false, responseReceived.getResponse().getFromDiskCache()));
driver.get("http://www.google.com");
devTools.send(Network.clearBrowserCache());
}
getFromDiskCache() -- 指定请求是否从磁盘缓存中提供。
对于上面的代码,它将是false
您可以参考硒存储库以获取所有示例测试 devtools/ChromeDevToolsNetworkTest.java
对于开发工具 Maven 依赖项
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-devtools -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-devtools</artifactId>
<version>4.0.0-alpha-6</version>
</dependency>