在 Chrome 开发工具网络选项卡中,我们可以通过单击“禁用缓存”复选框来禁用缓存。 refer
使用 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 测试
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
您可以参考 selenium 存储库 了解所有示例测试 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>