在 Selenium Chrome 驱动程序中禁用缓存

2023-11-25

我使用 Selenium ChromeDriver 来测量网页的性能。但默认情况下 Chrome 驱动程序缓存是启用的。

Option --disable-application-cache现已弃用https://code.google.com/p/chromium/issues/detail?id=447206

我也可以每次初始化一个新的驱动程序实例,但这不是很方便。

我的问题有没有办法正确禁用缓存?

Thanks!


在 Chrome 开发工具的“网络”选项卡中,我们可以通过单击“禁用缓存”复选框来禁用缓存。refer

可以使用以下命令复制相同的行为Chrome 开发者工具协议Selenium 4 中的支持。

我们可以用'网络.setCacheDisabled'来自 Chrome DevTools 协议

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

您可以参考硒存储库对于所有示例测试开发工具/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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Selenium Chrome 驱动程序中禁用缓存 的相关文章

  • 用Java截取网页的屏幕截图[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有一个免费的工具可以读取给定的网页并截取它的屏幕截图 我使用 VirtualFramebuffer 和 Firefox Binary
  • Java 密钥库 - 以编程方式从密钥库文件中选择要使用的证书

    我有一个 java 密钥库文件 其中包含多个客户端证书 我希望在 Java 应用程序中仅选择其中一个证书来连接到服务 有没有一种简单的方法可以做到这一点 到目前为止 我找到解决方案的唯一方法是使用原始密钥库文件中的客户端证书详细信息 通过其
  • twitter bootstrap css 在 chrome 扩展中发生冲突

    我正在使用 bootstrap 来编写我正在编写的 chrome 扩展 当作为内容脚本导入时 CSS 似乎与我正在查看的许多网站发生冲突 即使在谷歌搜索结果页面中 想知道我是否可以做些什么来将其范围限制为我使用内容脚本注入的 dom 元素
  • ActiveMQ 桥连接器到 WebSphereMQ 而不使用 XML 配置

    我想在嵌入式代理中创建一个代理来代理 ActiveMQ 和 WebSphere MQ 之间的连接 我知道 activemq 中存在网络连接器来执行此操作 代理到代理 但我不知道如何配置它以连接到 WebSphere MQ 在网络上进行搜索时
  • 如何使用 Selenium WebDriver 和 Java 滚动特定的 DIV?

    WebDriver 无法识别某些 WebElement WebDriver 无法找到浏览器可见区域中不可见的元素 In order to make the WebElement viewable by WebDriver We need t
  • 无法解析 ListView 适配器中的 getSystemService 方法

    我正在研究约翰霍顿的Android 编程初学者 目前正在尝试创建一个笔记应用程序 霍顿刚刚介绍ListViews 但是 我遇到了麻烦adapter class public class NoteAdapter extends BaseAda
  • 如何将 UPX 与 pyinstaller 一起使用?

    如何将 UPX 与 pyinstaller 一起使用 我正在关注文档 我已经下载了UPX 我的文件如下所示 import csv import selenium import pandas print Hello 然后我运行 pyinsta
  • 自 Java 7 以来 HttpServer 延迟 1 秒

    我们正在使用内部HttpServer项目中的类 用于通过 HTTP 在客户端和服务器之间交换数据 当我们切换到 Java 7 时 我们意识到结果交付存在延迟 我们可以将问题简化为以下示例 Class EchoServer创建上下文 echo
  • 如何在 Jersey RESTful Web 服务中放置 cookie?

    我想通过 Jersey API 将 cookie 从 PUT webservice result 放置到 POST webservice 这是我的代码 WebResource service1 client resource http te
  • Eclipse:对 Java 1.7 的失望(未绑定库)

    我在全新安装的 Eclipse 中处理全新项目时遇到问题 重现步骤 下载此版本的 Eclipse http www eclipse org downloads packages eclipse ide java developers hel
  • 如何使用二叉树中的递归来完成回溯

    我正在尝试插入一个二进制节点 我的代码很复杂 没有希望挽救它 所以我计划重写它 基本上我没有考虑回溯 也没有仔细考虑算法 我正在尝试使用顺序遍历插入二进制节点 但我不明白应该如何回溯 D B E A C F 我如何搜索根 D 的左子树 然后
  • JNA Windows 服务启动类型

    我一直在使用 JNA 并且能够使用下面的代码返回 Windows 服务的状态 即启动或停止 但我不确定如何返回服务的启动类型 我确信 JNA 之外还有其他方法 但如果可能的话我想继续使用 JNA import com sun jna imp
  • ElasticSearch - 定义自定义字母顺序进行排序

    我正在使用 ElasticSearch 2 4 2 通过 Java 的 HibernateSearch 5 7 1 Final 我在字符串排序方面遇到问题 我的应用程序的语言有变音符号 它们有特定的字母顺序 订购 例如 直接在之后L 追随O
  • IntelliJ IDEA 中的项目语言级别是多少?

    我正在使用 Java 7 SDK 和 IntelliJ IDEA IDE java version 1 7 0 11 Java TM SE Runtime Environment build 1 7 0 11 b21 Java HotSpo
  • Tomcat 与 Weblogic JNDI 查找

    我们使用的 Weblogic 服务器已配置为允许 JNDI 数据源名称 例如 appds 对于开发 本地主机 我们可能会运行 Tomcat 并且在 server xml 的 部分中声明时 Tomcat 会将 JNDI 数据源挂在 JNDI
  • 对远程 WebDriver 服务器的 URL 的 HTTP 请求...在 60 秒后超时

    我将 Selenium 与 Internet Explorer Web 驱动程序 IEDriverServer 一起使用 由于某种原因 我找不到它的代码库来打开这个错误 因此 如果有人也能指出我的方向 我将不胜感激 这个问题似乎广泛存在于所
  • C中使用JNI从对象获取对象

    public class Student private People people private Result result private int amount 这是 Java 中类的示例 在C中 我试图获取 学生 中的 人 但失败了
  • CompletableFuture 的多个 thenAccept 块的执行顺序是什么

    所以我有一个返回a的方法CompletableFuture 在返回之前 此方法添加一个块thenAccept这是在之后执行的CompletableFuture完成 此方法的调用者还添加了另一个块thenAccept 显然 这可以通过多个链式
  • 来自 Janino 和 Commons-Compiler 的 Spark java.lang.NoSuchMethodError

    我正在构建一个使用 Spark 进行基于随机森林分类的 应用程序 当尝试运行该程序时 我从该行收到异常 StringIndexerModel labelIndexer new StringIndexer setInputCol label
  • 获取给定字符串日期中该月的最后一天

    我的输入字符串日期如下 String date 1 13 2012 我得到的月份如下 SimpleDateFormat dateFormat new SimpleDateFormat MM dd yyyy Date convertedDat

随机推荐

  • 如何使用 HTMLAgilityPack 修复 html 标签(缺少 标签)

    我有一个 html div h1 hello Hi h1 div div hi div 所需输出 div h1 hello h1 div div p hi p div 使用 HTML 敏捷包是否可以解决此类类似的缺少结束和开始标签的问题 图
  • 如何在 postgresql 中进行透视

    我有如下表 我想改造它们 year month week type count 2021 1 1 A 5 2021 1 1 B 6 2021 1 1 C 7 2021 1 2 A 0 2021 1 2 B 8 2021 1 2 C 9 我想
  • SQL Server 字符串与 Null 的连接

    我正在跨字段创建一个计算列 其中一些字段可能为空 问题是 如果这些字段中的任何一个为空 则整个计算列也将为空 我从 Microsoft 文档中了解到 这是预期的 可以通过设置 SET CONCAT NULL YIELDS NULL 关闭 但
  • C# 从 URI 字符串获取文件名

    我有这个方法可以从字符串 URI 中获取文件名 我能做些什么来使它更强大 private string GetFileName string hrefLink string parts hrefLink Split string fileN
  • 为什么 .* 不消耗此 Perl 正则表达式中的整个字符串?

    为什么第一个打印语句没有输出我期望的结果 first This is a test string sec This is a test string 由于 和 都是贪婪的 为什么第一个匹配中的内部 即 内部的 不消耗整个字符串 use st
  • “Decimal”类型的对象不可 JSON 序列化

    由于客户函数错误 Lambda 执行失败 状态为 200 Decimal 类型的对象不可 JSON 序列化 我在以下链接中浏览了所有现有的解决方案 但没有任何对我有用 我究竟做错了什么 Python JSON 序列化 Decimal 对象
  • python asyncio如何读取StdIn并写入StdOut?

    我需要异步读取 StdIn 以获取消息 由 r n 终止的 json 并在处理异步后将更新的消息写入 StdOut 目前我正在同步执行此操作 如下所示 class SyncIOStdInOut def write self payload
  • 在 Linux 上使用 mkdir 作为基于文件的锁定是一个好习惯吗?

    我想在 Linux 上的 perl 程序中快速实现某种锁定 它可以在不同进程之间共享 所以我用了mkdir作为原子操作 它返回1如果该目录不存在并且0如果是的话 我删除了关键部分之后的目录 现在 有人向我指出 这通常不是一个好的做法 独立于
  • Apple Watch OS 2 上是否可以在没有伴随声音的情况下触发触觉反馈

    假设用户没有将手表声音静音 Apple Watch 应用程序是否可以在没有伴随声音的情况下触发触觉反馈 即振动 这与接收由手表自动处理的通知不同 在本例中 我使用手表应用程序调用触觉反馈 像这样 WKInterfaceDevice curr
  • 在WebAPI中绑定抽象动作参数

    我遇到的情况是 我需要将传入的 HTTP POST 请求与正文中的数据绑定到具体类型 具体取决于ProductType数据中的分母 这是我的 Web API 2 操作方法 HttpPost Route public HttpResponse
  • Perl:为什么在循环内声明(我的)变量速度较慢?

    从口译员的视角来看 以下程序之间有什么区别 usr bin perl w use strict for 1 10000000 my jimmy 2 and usr bin perl w use strict my jimmy for 1 1
  • iOS 未收到通过 API 发送的 Firebase 推送通知

    我正在使用 Google 的 Firebase Cloud Messaging 将推送通知发送到我的 iOS 和 Android 应用程序 通过云消息控制台发送的推送通知按预期工作 但是当我通过 API 发送推送通知时 iOS 应用程序仅在
  • jquery:在图像后淡入淡出

    我有一个包含 10 张图像的页面 我想在图像下载后将它们逐个淡入淡出 如何检测图像已加载并准备好显示 我应该循环加载加载的图像 fadeIn 并一旦 fadeIn 等待下一个加载吗 只需在图像上使用 load 事件即可 例如 some im
  • 重写方法上的 Java Class.getMethods() 行为

    在使用 Java 反射编写一个简单的 JSON 序列化程序时 我对 Class getMethods 的行为感到措手不及 如果重写方法的返回类型扩展了被重写方法的返回类型 则 Java Class getMethods 似乎会返回重写方法和
  • 如何使用 Apache Batik 将一张 SVG 图像叠加到另一张 SVG 图像上?

    我有 2 个 SVG 文件需要使用 Batik 进行叠加 第一个文件用作背景图像 大小为 308 像素 x 308 像素 而第二个文件 260 像素 x 260 像素 是必须居中的前景图像 即位于背景图像的中心 我希望将操作结果保存在第三个
  • 为什么全局匿名联合需要声明为静态?

    C 0x 草案 9 5 6 在命名命名空间或全局命名空间中声明的匿名联合应声明为静态的 为什么是这样 假设匿名联合不需要声明为静态 并且编译器遇到这两个翻译单元 预处理后 File1 union int a char b Further c
  • Microsoft Visual Studio:opendir() 和 readdir(),如何实现?

    我之前在我的 Dev cpp 中使用过这种代码 if dh opendir folder false while file readdir dh false do my stuff closedir dh 但现在我正在使用 MSVC 我不知
  • CSS边框颜色分为4种颜色

    有什么方法可以让 CSS 边框的一侧有 4 种不同的颜色吗 我目前有 header border color 88a9eb 我想要有 4 种纯色边框 每种颜色有 25 的分割 这可能吗 我想制作一个完整的版本 中间没有白色的部分 您可以使用
  • 如何从另一个 job2 访问 Hudson job1 工件?

    我们在哈德逊的一个项目中有一份制作工作和一份夜间工作 生产作业需要从特定的夜间构建 作为参数提供 中提取一些工件 谁能帮助我们提示如何实现这一目标 The 复制神器插件似乎能够做到这一点 另一种方法可能是通过获取工件 http server
  • 在 Selenium Chrome 驱动程序中禁用缓存

    我使用 Selenium ChromeDriver 来测量网页的性能 但默认情况下 Chrome 驱动程序缓存是启用的 Option disable application cache现已弃用https code google com p