Chrome DevTools

Chrome Devtools调试技巧 Chrome Devtools的强大之处仍不止这些,敬请关注后面的文章由于图片和格式解析问题,可前往阅读原文。 阅读详情

第一篇

Console【控制台】

控制台概览

本页面介绍了 Chrome DevTools Console 如何让开发网页变得更容易。 控制台有两个主要用途:查看记录的消息和运行 JavaScript。

查看记录的消息

Web 开发人员经常将消息记录到控制台,以确保他们的 JavaScript 按预期工作。 要记录消息,请在 JavaScript 中插入一个类似于 console.log('Hello, Console!') 的表达式。 当浏览器执行您的 JavaScript 并看到这样的表达式时,它知道它应该将消息记录到控制台。

运行 JavaScript

控制台也是一个 REPL。 您可以在控制台中运行 JavaScript 以与您正在检查的页面进行交互。

控制台中的日志消息

此交互式教程向您展示如何在 Chrome DevTools 控制台中记录和过滤消息。

设置【demo】和 DevTools

本教程旨在让您可以打开演示并自己尝试所有工作流程。 当您实际跟随时,您以后更有可能记住工作流程。

1,打开demo。

2,按 Control+Shift+J 或 Command+Option+J (Mac) 打开 DevTools。 默认情况下,DevTools 在右侧打开。

查看从 JavaScript 记录的消息

您在控制台中看到的大多数消息来自编写页面 JavaScript 的 Web 开发人员。 本节的目标是向您介绍您可能会在控制台中看到的不同消息类型,并解释如何从您自己的 JavaScript 中自行记录每种消息类型。

1,在【demo】页面点击【Log Info】按钮。

2,控制台中单击 【log.js:2】。 Sources 面板打开并突出显示导致消息被记录到控制台的代码行。 当页面的 JavaScript 调用 【console.log('Hello, Console!')】 时记录该消息。 

 3,使用以下任一工作流导航回控制台:

    A,单击控制台选项卡。
    B,按 Control+[ 或 Command+[ (Mac),直到【Console】面板获得焦点。
    C,打开命令菜单,输入 Console,选择 Show Console Panel 命令,然后按 Enter。

4,单击【demo】中的【Log Warning】按钮。 像这样格式化的消息是警告。

5, 点击警告消息前的箭头,用来显示导致警告消息的跟踪。

6,单击【demo】中的【Log Error】按钮。 像这样格式化的消息是错误。

7,单击【demo】中的【Log Table 】按钮。 显示表格化的消息。

8,单击【demo】中的【Log Group】按钮。显示组格式化的消息。

9,单击【demo】中的【Log Custom】按钮。 带有红色边框和蓝色背景的消息会记录到控制台。

这里的主要思想是,当您想从 JavaScript 将消息记录到控制台时,您可以使用其中一种控制台方法。 每种方法都以不同的方式格式化消息。

还有比本节中演示的方法更多的方法。 在本教程结束时,您将学习如何探索其余方法。

查看浏览器记录的消息

浏览器也将消息记录到控制台。 这通常发生在页面出现问题时。

1,单击【demo】中的【Cause 404】按钮。浏览器会记录 404 网络错误,因为页面的 JavaScript 试图获取不存在的文件。

2,单击【demo】中的【Cause Error】按钮。 浏览器会记录未捕获的 TypeError,因为 JavaScript 正在尝试更新不存在的 DOM 节点。

3,单击 【Log Levels】 下拉菜单,如果已禁用,则启用 【Verbose】 选项。 您将在下一节中了解有关过滤的更多信息。 您需要这样做以确保您记录的下一条消息可见。

注意:如果默认级别下拉菜单被禁用,您可能需要关闭控制台侧栏。 按下面的消息源过滤以获取有关控制台侧边栏的更多信息。 

4,单击【demo】中的【Cause Violation】按钮。 页面在几秒钟内无响应,然后浏览器将消息 [Violation] 'click' handler take 3000ms 记录到控制台。 确切的持续时间可能会有所不同。 

过滤消息

在某些页面上,您会看到控制台充斥着消息。 DevTools 提供了许多不同的方法来过滤掉与手头任务无关的消息。
1,过滤普通【log】。

每个控制台方法都分配了一个严重性级别:详细【Verbose】、信息【Info】、警告【Warning】或错误【Error】。 例如,console.log() 是信息【Info】级别的消息,而 console.error() 是错误【Error】级别的消息。

单击【Log Levels】下拉列表并禁用错误【Error】。 当级别旁边不再有复选标记时,级别将被禁用。 错误级别消息消失。

 

 2,按文本过滤。

如果您只想查看包含确切字符串的消息,请在过滤器文本框中键入该字符串。


3,按正则表达式过滤。

如果要显示包含文本模式而非特定字符串的所有消息,请使用正则表达式。

参考:正则表达式语法     检证正则表达式

4,按消息来源过滤。

如果您只想查看来自某个 URL 的消息,请使用侧边栏。


5,按用户消息过滤。

将控制台与任何其他面板一起使用

如果您正在编辑样式,但需要快速检查控制台日志中的某些内容,该怎么办? 使用抽屉。

1,单击【Elements】选项卡。

 2,按【ESC】。 抽屉的控制台选项卡打开。 它具有您在本教程中一直使用的控制台面板的所有功能。

在控制台中运行 JavaScript

此交互式教程向您展示如何在 Chrome DevTools 控制台中运行 JavaScript。

概述

控制台是一个 REPL,代表读取、评估、打印和循环。 它读取您输入的 JavaScript,评估您的代码,打印出您的表达式的结果,然后循环回到第一步。

设置开发者工具

本教程旨在让您可以打开演示并自己尝试所有工作流程。 当您实际跟随时,您以后更有可能记住工作流程。

1,按 Command+Option+J (Mac) 或 Control+Shift+J(Windows、Linux、Chrome OS)打开控制台。

查看和更改页面的 JavaScript 或 DOM

在构建或调试页面时,在控制台中运行语句以更改页面的外观或运行方式通常很有用。

1,注意下面按钮中的文字。

2,输入 【document.getElementById('hello').textContent = 'Hello, Console!'】 在控制台中,然后按 【Enter】 计算表达式。 注意按钮内的文本是如何变化的。 

运行与页面无关的任意 JavaScript

有时,您只想要一个代码游乐场,您可以在其中测试一些代码,或者尝试您不熟悉的新 JavaScript 功能。 控制台是进行此类实验的理想场所。

1,在控制台中键入 【5 + 15】 并按 Enter 以计算表达式。 控制台打印出代码下面的表达式的结果。

2,在控制台中键入以下代码。 尝试逐个字符地输入它,而不是复制粘贴它。

function add(a, b=20) {
  return a + b;
}

3,现在,调用您刚刚定义的函数。

附录 

1,您可以输入 【$()】,而不是键入 【document.querySelector()】 来选择元素。 此语法受 jQuery 启发,但实际上并非 jQuery。 它只是 【document.querySelector()】 的别名。

2,【debug(function)】 在该函数的第一行有效地设置了一个断点。

3,【keys(object)】 返回一个包含指定对象键的数组。

控制台功能参考

此页面是与 Chrome DevTools 控制台相关的功能参考。

打开控制台

您可以将控制台作为面板或抽屉中的选项卡打开。

1,打开控制台面板。

    A,按 Control+Shift+J 或 Command+Option+J (Mac)。

    B,要从命令菜单打开控制台面板,请开始输入【Console】,然后运行旁边带有【Panel】标志的【Show Console】命令。


2,打开抽屉中的控制台选项卡。

    按 【Escape】 或单击 【Customize And Control DevTools】 然后选择 【Show Console Drawer】。

    【Drawer】 在您的 DevTools 窗口底部弹出,并打开 Console 选项卡。 

    要从命令菜单打开控制台选项卡,请开始键入控制台,然后运行旁边带有抽屉标志的显示控制台命令。 

3,打开控制台设置。

    点击【Console Settings】。

 4,打开控制台侧边栏。

单击 【Show Console Sidebar】 以显示侧边栏,这对过滤很有用。

查看消息

此部分包含更改消息在控制台中的显示方式的功能。
1,禁用消息分组

    打开控制台设置并禁用组类似于禁用控制台的默认消息分组行为。

2,记录 XHR 和 Fetch 请求

    打开控制台设置并启用 【Log XMLHttpRequests】 以在发生时将所有 XMLHttpRequest 和 Fetch 请求记录到控制台。

3,跨页面加载保持消息

    默认情况下,每当您加载新页面时,控制台都会清除。 要跨页面加载保留消息,请打开控制台设置,然后启用保留日志复选框。


4,隐藏网络消息 

    默认情况下,浏览器将网络消息记录到控制台。 隐藏网络消息:打开控制台设置。启用隐藏网络复选框。

过滤消息

有很多方法可以过滤掉控制台中的消息。

1,过滤浏览器消息

    打开控制台边栏并单击用户消息以仅显示来自页面 JavaScript 的消息。


2,按日志级别过滤

    DevTools 为每个 【console.*】 方法分配一个严重性级别。 有 4 个级别:详细、信息、警告和错误。 例如,console.log() 在 Info 组中,而 console.error() 在 Error 组中。 控制台 API 参考描述了每种适用方法的严重性级别。 浏览器记录到控制台的每条消息也有一个严重性级别。 您可以隐藏您不感兴趣的任何级别的消息。

    A,您还可以通过打开控制台边栏,然后单击错误、警告、信息或详细信息来按日志级别进行过滤。

    B,单击日志级别下拉列表以启用或禁用详细、信息、警告或错误消息。

3,按 URL 过滤消息

键入 url: 后跟一个 URL 以仅查看来自该 URL 的消息。 输入 url 后:DevTools 会显示所有相关的 URL。

例如,

    A,如果 【https://example.com/a.js】 和 【https://example.com/b.js】 正在记录消息,则 【url:https://example.com】 使您能够专注于来自这两个的消息 脚本。 

    B,输入 【-url】: 以隐藏来自该 URL 的消息。 这称为否定 URL 过滤器。

您还可以通过打开控制台边栏,展开用户消息部分,然后单击包含要关注的消息的脚本的 URL 来显示来自单个 URL 的消息。

4,过滤掉来自不同上下文的消息

    假设您的网页上有一则广告。 该广告嵌入在 <iframe> 中,并在您的控制台中生成大量消息。 由于此广告位于不同的 JavaScript 上下文中,因此隐藏其消息的一种方法是打开控制台设置并启用仅选定上下文复选框。


5,过滤掉与正则表达式模式不匹配的消息 

    在过滤器文本框中键入正则表达式,例如 /[gm][ta][mi]/ 以过滤掉与该模式不匹配的任何模式。 DevTools 检查是否在消息文本或导致记录消息的脚本中找到该模式。

运行 JavaScript

本节包含与在控制台中运行 JavaScript 相关的功能。

1,重新运行历史表达式

    按向上箭头键可循环浏览您之前在控制台中运行的 JavaScript 表达式的历史记录。 按 Enter 再次运行该表达式。
2,使用 Live Expressions 实时观察表达式的值

    如果您发现自己在控制台中重复输入相同的 JavaScript 表达式,您可能会发现创建实时表达式更容易。 使用 【Live Expressions】,您只需输入一次表达式,然后将其固定到控制台的顶部。 表达式的值近乎实时地更新。
3,禁用 Eager 评估

    当您在控制台中键入 JavaScript 表达式时,【Eager Evaluation】 会显示该表达式返回值的预览。 打开控制台设置并禁用 【Eager Evaluation】 复选框以关闭返回值预览。


4,从历史中禁用自动完成 

    当您输入表达式时,控制台的自动完成弹出窗口会显示您之前运行的表达式。 这些表达式前面带有 > 字符。 打开控制台设置并禁用从历史记录自动完成复选框以停止显示历史记录中的表达式。


5,选择 JavaScript 上下文

默认情况下,JavaScript 上下文下拉列表设置为顶部,代表主文档的浏览上下文。

假设您的网页上有一个嵌入 <iframe> 的广告。 您希望运行 JavaScript 以调整广告的 DOM。 为此,您首先需要从 JavaScript 上下文下拉列表中选择广告的浏览上下文。

清空控制台内容

您可以使用以下任何工作流程来清除控制台:

    A,单击清除控制台来清除控制台。


    B,右键单击消息,然后选择清除控制台。


    C,在控制台中键入 clear(),然后按 Enter。


    D,从您网页的 JavaScript 调用 console.clear()。
    E,当控制台处于焦点时按 Control+L。

控制台 API 参考

使用控制台 API 从 JavaScript 将消息写入控制台。

console.assert(expression, object)

当表达式的计算结果为 false 时,将错误写入控制台。

const x = 5;
const y = 3;
const reason = 'x is expected to be less than y';
console.assert(x < y, {x, y, reason});

console.clear() 

清空控制台。

console.clear();

console.count([label]) console.countReset([label])

写入 count() 在同一行和相同标签被调用的次数。 调用 console.countReset([label]) 重置计数。

console.count();
console.count('coffee');
console.count();
console.count();

console.debug(object [, object, ...]) 

除了不同的日志级别外,与 【console.log(object [, object, ...])】 相同。

console.debug('debug');

 

console.dir(object)

打印指定对象的 JSON 表示。 

console.dir(document.head);

console.dirxml(node)

打印节点后代的 XML 表示。

console.dirxml(document);

console.error(object [, object, ...])

将对象打印到控制台,将其格式化为错误,并包含堆栈跟踪。

console.error("I'm sorry, Dave. I'm afraid I can't do that.");

console.group(label) 

可视化地将消息组合在一起,直到调用 console.groupEnd(label)。

const label = 'Adolescent Irradiated Espionage Tortoises';
console.group(label);
console.info('Leo');
console.info('Mike');
console.info('Don');
console.info('Raph');
console.groupEnd(label);

console.groupCollapsed(label)

与 console.group(label) 相同,除了组在登录到控制台时最初折叠。

const label = 'Adolescent Irradiated Espionage Tortoises';
console.group(label);
console.info('Leo');
console.info('Mike');
console.info('Don');
console.info('Raph');
console.groupEnd(label);

console.groupEnd(label)

停止对消息进行视觉分组。

console.info(object [, object, ...])

与 console.log(object [, object, ...]) 相同。

console.info('info');

console.log(object [, object, ...])

向控制台打印一条消息。

console.log('log');

console.table(array)

将对象数组记录为表。

console.table([
  {
    first: 'René',
    last: 'Magritte',
  },
  {
    first: 'Chaim',
    last: 'Soutine',
    birthday: '18930113',
  },
  {
    first: 'Henri',
    last: 'Matisse',
  }
]);

console.time([label])

启动一个新的计时器。 调用 console.timeEnd([label]) 停止计时器并将经过的时间打印到控制台。

console.time();
for (var i = 0; i < 100000; i++) {
  let square = i ** 2;
}
console.timeEnd();

console.timeEnd([label])

停止计时器。

console.trace()

将堆栈跟踪打印到控制台。

const first = () => { second(); };
const second = () => { third(); };
const third = () => { fourth(); };
const fourth = () => { console.trace(); };
first();

 console.warn(object [, object, ...])

向控制台打印警告。

console.warn('warn');

控制台实用程序 API 参考

控制台实用程序 API 包含一组用于执行常见任务的便捷函数:选择和检查 DOM 元素、以可读格式显示数据、停止和启动分析器以及监视 DOM 事件。
警告:这些函数仅在您从 Chrome DevTools 控制台调用它们时才起作用。 如果您尝试在脚本中调用它们,它们将不起作用。 

$_

$_

返回最近计算的表达式的值。

$0 - $4

$0、$1、$2、$3 和 $4 命令用作对在 Elements 面板中检查的最后五个 DOM 元素或在 Profiles 面板中选择的最后五个 JavaScript 堆对象的历史参考。 $0 返回最近选择的元素或 JavaScript 对象,$1 返回第二个最近选择的元素,依此类推。

$(selector, [startNode])

$(selector) 返回对具有指定 CSS 选择器的第一个 DOM 元素的引用。 当使用一个参数调用时,此函数是 document.querySelector() 函数的别名。

此函数还支持第二个参数 startNode,它指定要从中搜索元素的“元素”或节点。 该参数的默认值为文档【document】。 

注意:如果您正在使用使用 $ 的库(例如 jQuery),则此功能将被覆盖,并且 $ 将对应于该库的实现。

$$(selector, [startNode])

$$(selector) 返回与给定 CSS 选择器匹配的元素数组。 此命令等效于调用 document.querySelectorAll()。

此函数还支持第二个参数 startNode,它指定要从中搜索元素的元素或节点。 该参数的默认值为文档【document】。

注意:在控制台中按 Shift + Enter 可在不执行脚本的情况下开始新行。

$x(path, [startNode])

$x(path) 返回与给定 XPath 表达式匹配的 DOM 元素数组。

clear()

清空控制台。

copy(object)

copy(object) 将指定对象的字符串表示复制到剪贴板。

debug(function)

当指定的函数被调用时,调试器被调用并在 Sources 面板上的函数内部中断,允许单步执行代码并调试它。

使用 undebug(fn) 停止中断函数,或使用 UI 禁用所有断点。

dir(object)

dir(object) 显示所有指定对象属性的对象样式列表。 此方法是 Console API 的 console.dir() 方法的别名。

dirxml(object)

dirxml(object) 打印指定对象的 XML 表示,如元素选项卡中所示。 此方法等效于 console.dirxml() 方法。

inspect(object/function)

inspect(object/function) 打开并在适当的面板中选择指定的元素或对象:DOM 元素的 Elements 面板或 JavaScript 堆对象的 Profiles 面板。

getEventListeners(object)

【getEventListeners(object)】 返回在指定对象上注册的事件侦听器。 返回值是一个对象,其中包含每个注册事件类型(例如,单击或按键)的数组。 每个数组的成员都是描述为每种类型注册的侦听器的对象。

如果在指定对象上注册了多个侦听器,则数组包含每个侦听器的成员。

keys(object)

keys(object) 返回一个包含属于指定对象的属性名称的数组。 要获取相同属性的关联值,请使用 values()。

var player1 = { "name": "Ted", "level": 42 }

monitor(function) 

调用指定的函数时,会在控制台中记录一条消息,指示函数名称以及调用时传递给该函数的参数。

    function sum(x, y) {
        return x + y;
    }
    monitor(sum);

使用 【unmonitor(function)】 停止监视。 

monitorEvents(object[, events])

当指定的事件之一发生在指定的对象上时,事件对象将记录到控制台。 您可以指定要监视的单个事件、事件数组或映射到预定义事件集合的通用事件“类型”之一。

以下监控窗口对象上的所有调整大小事件。

monitorEvents(window, "resize");

您还可以指定一种可用的事件“类型”,即映射到预定义事件集的字符串。 下表列出了可用的事件类型及其关联的事件映射:

事件类型 & 对应的映射事件
mouse"mousedown", "mouseup", "click", "dblclick", "mousemove", "mouseover", "mouseout", "mousewheel"
key"keydown", "keyup", "keypress", "textInput"
touch"touchstart", "touchmove", "touchend", "touchcancel"
control"resize", "scroll", "zoom", "focus", "blur", "select", "change", "submit", "reset"

 profile([name]) and profileEnd([name])

profile() 使用可选名称启动 JavaScript CPU 分析会话。 profileEnd() 完成配置文件并在“配置文件”面板中显示结果。 (另请参阅加速 JavaScript 执行。)

queryObjects(Constructor)

从控制台调用 queryObjects(Constructor) 以返回使用指定构造函数创建的对象数组。 例如:

    1,【queryObjects(Promise)】。 返回所有承诺。
    2,【queryObjects(HTMLElement)】。 返回所有 HTML 元素。
    3,【queryObjects(foo)】,其中 foo 是函数名。 返回所有通过 new foo() 实例化的对象。

【queryObjects()】 的范围是控制台中当前选择的执行上下文。

table(data[, columns])

通过传入带有可选列标题的数据对象,以表格格式记录对象数据。

    var names = {
        0: { firstName: "John", lastName: "Smith" },
        1: { firstName: "Jane", lastName: "Doe" }
    };
    table(names);

undebug(function)

【undebug(function)】 停止对指定函数的调试,以便在调用该函数时不再调用调试器。

unmonitor(function)

【unmonior(function)】 停止对指定函数的监视。 这与 【monitor(fn)】 一起使用。 

unmonitorEvents(object[, events])

【unmonitorEvents(object[, events])】 停止监视指定对象和事件的事件。

您还可以有选择地停止监视对象上的特定事件。 例如,以下代码开始监视当前选定元素上的所有鼠标事件,然后停止监视“mousemove”事件(可能是为了减少控制台输出中的噪音):

    monitorEvents($0, "mouse");
    unmonitorEvents($0, "mousemove");

values(object)

values(object) 返回一个数组,其中包含属于指定对象的所有属性的值。

使用 Live Expressions 实时观察 JavaScript 值

如果您发现自己在控制台中重复输入相同的 JavaScript 表达式,您可能会发现创建实时表达式更容易。 使用 Live Expressions,您只需输入一次表达式,然后将其固定到控制台的顶部。 表达式的值近乎实时地更新。

创建实时表达式

1,单击创建实时表达式 【Create Live Expression】。 出现实时表达式文本框。

2,键入 Control+Enter 或 Command+Enter (Mac) 以保存表达式,或单击 Live Expression 文本框外部。 

【高手切磋】Chrome DevTools 详述 是 Google Chrome 浏览器内置的一套强大的开发者工具,用于调试和优化网页。它提供了丰富的功能,帮助开发者检查和修改 HTML、CSS 和 JavaScript 代码,分析性能问题,调试网络请求,以及进行其他各种开发任务。 阅读详情

相关推荐

Chrome DevTools Protocol 入门:相关概念

在上篇文章中,我们快速地使用了 Chrome DevTools Protocol(CDP)发送指令,成功实现了一些浏览器自动化操作。然而,要想深入使用 CDP,还需要对其中的协议概念有更深入的理解。这些概念不仅是我们与浏览器交互的基础,还决定了我们如何构建更复杂、更灵活的调试和自动化操作。为了让这些概念更容易理解,我们将在这里通过实例化的方式,打一些比方,让抽象的概念变得更加具象化。通过这些实例化的比喻和解释,我们可以更直观地理解 Chrome DevTools Protocol 中的域方法事件和类型。

守城小轩的技术窝棚 2178

谷歌浏览器 | Chrome DevTools系统学习篇-Device Mode

对谷歌浏览器,Device Mode模块的学习。我们学习了使用Device Mode(设备模式)的屏幕模拟器测试你的网站的响应式布局。学习了保存自定义预设,以便以后轻松访问它们……

happy921212的博客 4309

如何关闭 Nuxt.js 中的 Nuxt DevTools,告别烦人的调试工具

虽然 Nuxt DevTools 在开发时提供了很多便利,但有时它会影响我们的开发体验。通过简单修改文件中的配置,我们就能轻松地关闭它,从而享受更清爽的开发环境。如果你也遇到类似问题,可以按照这个方法尝试一下。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 696

Vue项目上线后关闭vue-devtools调试工具

【代码】Vue项目上线后关闭vue-devtools调试工具。

灵壹Eli的博客 3737

【开源数据集】电动车佩戴头盔检测数据集(TWHD)

佩戴头盔检测数据集VOC格式图像与标注数量各5448张

hzg19930513的博客 5165

Python+Selenium实战:5分钟搞定快手评论区数据采集(附完整代码)

本文详细介绍了如何使用Python和Selenium快速采集快手评论区数据,提供完整的代码实现和优化方案。通过动态加载处理和智能等待策略,5分钟内即可构建高效的评论采集工具,适用于用户行为分析和内容挖掘等场景。

weixin_30415113的博客 342

Chrome 开发者工具 第十四章(控制台实时观察 JavaScript)

Chrome 开发者工具的控制台提供了一个非常实用的功能——实时表达式。这个功能允许开发者在控制台顶部固定一个或多个JavaScript表达式,以便实时跟踪它们的值。这对于监测变量或表达式的变化特别有用,尤其是当你发现自己需要反复输入同一个表达式来查看其值时。

帮助别人就是帮助自己 1495

MAX96712解串器MIPI CSI-2输出配置全解析:从Video Pipe映射到DPLL速率设置(以4路YUV422摄像头为例)

本文详细解析了MAX96712解串器在MIPI CSI-2输出配置中的关键步骤,包括Video Pipe映射、寄存器配置和DPLL速率设置。通过具体示例和代码片段,帮助开发者优化4路YUV422摄像头系统的图像传输稳定性和画质表现,适用于汽车电子和工业视觉应用。

weixin_30776273的博客 433

关闭devtools显示在浏览器开发页面

在打开的开发者界面后浏览器页面上显示了devtools的调试窗口,找了半天怎么关闭,最后发现是因为创建的时候自动安装了 devtools的插件,不需要的可以删除此插件或者隐藏。今天创建了一个新的vue3项目使用 npm create vue@latest 创建方式。

莫循的AI编程博客 7222

cadence Virtuoso ADE原理图库中的VCVS(压控电压源)使用

Symbol: vcvs (Voltage Controlled Voltage Source) Vop−Von=egain⋅(Vip−Vin)V_{op}-V_{on}=egain\cdot(V_{ip}-V_{in})Vop​−Von​=egain⋅(Vip​−Vin​) 所以可以得出 ⟹Vop=egain⋅(Vip−Vin)+Von\Longrightarrow V_{op}=egain\cdot(V_{ip}-V_{in})+V_{on}⟹Vop​=egain⋅(Vip​−Vin​)+Von​ 使

大学生视野 2万+

HI3403烧录全流程:从ToolPlatform安装到eMMC配置避坑指南

本文详细介绍了海思HI3403芯片的完整烧录流程,涵盖从ToolPlatform工具安装、驱动配置到eMMC分区策略的实战指南。文章深入解析了BurnTool工具的使用方法、关键配置项,并提供了烧录过程中的常见问题排查与解决方案,旨在帮助开发者高效、稳定地完成HI3403嵌入式系统的部署。

weixin_29279101的博客 331

Chrome DevTools MCP

MCP代表——一种新的通信层,旨在帮助工具(甚至AI代理)与软件进行结构化交互。当Chrome添加MCP支持时,它实际上给了DevTools一个大脑和声音。“打开这个页面。“等待登录按钮出现。“截取屏幕截图。“开始性能 trace。“告诉我出现了什么控制台错误。简而言之,Chrome DevTools MCP将你的浏览器变成了一个API驱动的自动化伙伴——不再只是一个你手动检查的地方。

新缸中之脑 788

保姆级教程:用Wokwi玩转ESP32 MicroPython仿真(含库文件配置指南)

本教程详细介绍了如何使用Wokwi平台进行ESP32 MicroPython仿真开发,包括库文件配置、传感器数据模拟和REPL调试技巧。通过Wokwi的仿真调试系统,开发者可以在浏览器中快速验证代码逻辑,提高开发效率,特别适合物联网项目的快速迭代。

weixin_29195615的博客 442

Clojure实现的Chrome DevTools远程控制库——clj-chrome-devtools

Clojure实现的Chrome DevTools远程控制库——clj-chrome-devtools 项目基础介绍 clj-chrome-devtools 是一个Clojure语言编写的开源项目,旨在提供一个通用的库来控制无头Chrome浏览器,使用Chrome DevTools Protocol(CDP)进行通信。这个库能够通过WebSocket连接Clojure和Chrome,从而实现远程控...

gitblog_00169的博客 465

【系统分析师】2009年真题:综合知识-答案及详解

在某银行业务的用例模型中,“取款”用例需要等到“存款”用例执行之后才能执行,两个用例之间的关系属于(1);“取款”和“存款”两个用例中都需 要执行查询余额的功能,将查询余额提取成独立的用例,那么“取款”和“存款” 用例与“查询余额”用例之间的关系属于(2)。(1)A. 关联关系 B. 扩展关系 C. 使用关系 D. 依赖关系 (2)A. 扩展关系 B. 使用关系 C. 依赖关系 D. 继承关系【参考答案】D、A雇员类含有计算报酬的行为,利用面向对象的(3),可以使得其派生类专职 雇员类和兼职雇员类计算报酬的

数据知道的博客 1万+

微信公众平台 - 微信内置浏览器 WeixinJSBridge.invoke(‘xxx‘) API 报错:system:access_denied(常见于微信支付、分享朋友圈/转发好友等功能)解决方案

微信支付提示System:access_denied,调用微信支付返回:system:access_denied为什么,安卓版微信支付偶尔出现system:access_denied,微信公众号开发分享出现system:access_denied,system:access_denied如何解决?微信WeixinJSBridge.invoke(‘xxx‘)API调用后出现报错,微信内部H5WeixinJSBridge.invokesystem:access_denied,使用微信jssdk时报ac

🏆 前端领域优质创作者 5144

Codex接入Chrome DevTools MCP教程

MCP(Model Context Protocol)服务操作浏览器获取页面 DOM调试网页分析 Network 请求自动执行 DevTools 操作AI + Chrome DevTools 自动化CodexClaudeCursorClineRooCode很多 AI 工具都开始支持 MCP。1. Codex CLI 没安装2. Windows PATH 没配置基本就能正常运行。对于前端开发来说。帮你写代码自动调试浏览器这一点变化其实非常大。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2808

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Chrome DevTools Protocol 入门:快速开始

Chrome DevTools Protocol 是 Chrome 浏览器提供的一种低级 API,开发者可以通过它与浏览器的内部机制进行交互。它支持浏览器调试、性能分析、DOM 操作、网络管理等多种功能,几乎覆盖了开发者需要的所有调试和自动化场景。通过 WebSocket 与浏览器建立连接,客户端程序可以向浏览器发送命令,并通过监听事件获取浏览器的状态反馈。Page 域:管理页面的加载、导航和截屏。DOM 域:操作 DOM 树结构,获取页面元素的信息。Network 域:拦截和监控网络请求。

守城小轩的技术窝棚 9864

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Chrome DevTools MCP参考指南

Chrome DevTools MCP (Model Context Protocol) Tool 提供了一套完整的浏览器自动化和调试能力,可用于网页测试、自动化操作、性能分析等场景。该工具集包含 26 个功能工具,分为 6 大类别。在Claude Code中也可以调用Chrome DevTools MCP来完成网页内容抓取和分析工作,或者进行一些表单填写和提交。

zsslineage2的博客 1656

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

谷歌官方 Chrome DevTools MCP 正式发布

Google推出Chrome DevTools MCP服务器,让AI开发工具可直接调试网页。该功能解决了AI无法实时查看网页运行状态的痛点,支持集成到Claude Code、Cursor等主流开发工具中。安装需Node.js 22.12.0以上版本,通过简单配置即可实现网页调试、性能分析、错误诊断等功能。开发者现可让AI代理实时验证代码、分析网络请求、模拟用户行为,并自动执行性能审核。这一创新将显著提升AI辅助开发的效率和准确性。

智造编程 2903

Chrome底层及Chrome-devtools-mcp

概念说明Chrome 应用只有一个,在里Chrome 实例可以启动多个,通过区分MCP 的 Chrome就是用独立数据目录启动的另一个实例所以你电脑上确实只有一个 Chrome,但可以同时运行多个"身份"独立的窗口。问题答案无头浏览器是什么?没有图形界面,在后台运行的浏览器MCP 启动的是无头吗?❌ 默认是有头的(有窗口)能改成无头吗?✅ 可以,加--headless参数什么时候用无头?服务器自动化、CI/CD、不需要看界面时。

EmotionComputer 1389

【DevTools】别再只会 `console.log`:Chrome DevTools 的调试魔法

你像一个真正的侦探一样,在关键时刻“冻结时间”,通过观察、推理、和现场实验,精准地定位问题的根源。当你第一次在暂停的断点上,看着所有变量的值在你面前一览无余时,你会发现一个全新的、更清晰的调试世界。掌握它们,你将从一个只会用“放大镜”的“路人侦探”,蜕变成一个手握“全息分析仪”、能够冻结时间、洞察一切的“神探”。的便捷和断点的“非侵入性”,你可以在不修改、不重新编译代码的情况下,自由地向任何地方注入日志。请确保在提交代码前,将所有的。这会在你的控制台生成结构清晰、可折叠的日志块,让你的调试信息不再混乱。

2301_79858914的博客 1021

【MCP工具】Chrome DevTools MCP:把浏览器自动化与 DevTools 调试能力接入 AI Agent

本文围绕 Chrome DevTools MCP 展开技术学习分享,介绍其如何将真实 Chrome 浏览器的自动化操作、Console、Network、Performance、Memory、Lighthouse 等 DevTools 调试能力接入 AI Agent 工作流。文章结合官方工具能力、演示场景、快速上手配置,并对比 Playwright MCP 的定位差异,帮助开发者理解它在前端调试、页面验证、性能分析和 AI Coding Agent 闭环中的实际价值。

weixin_66397563的博客 945

Chrome DevTools MCP使用

Chrome DevTools MCP

HeroRazor的专栏 480

Chrome 调试工具【DevTools】详解

前言 2 认识DevTools 3 Source面板 3.1 资源区 3.2 工作区 3.3 控制区 4 调试小技巧 4.1 格式化调试代码 4.2 设置Blackbox 4.2.1 开始配置 4.2.2 查看效果 5 参考文档 认识DevTools 选项卡 【Elements】 元素面板,查看Web页面的HTML与CSS,最重要的是可以双击元素,对当前页面进行修改 【Consol...

段占彪的博客 6925
上一篇: Chrome DevTools
下一篇: Chrome DevTools
java_hzh
博客等级 码龄11年 2粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值