本文暂未涉及Performance
面板的内容。 后续会单独出一篇,如下是目录:css
Blackbox Script
WebView
bug
跟踪、断点调试等API
数据是否正确、审查页面元素样式及布局、页面加载性能分析、自动化测试AdBlock、Gliffy、Axure
等Elements
- 页面dom元素Console
- 控制台Sources
- 页面静态资源Network
- 网络Performance
- 设备加载性能分析Application
- 应用信息,PWA/Storage/Cache/Frames
Security
- 安全分析Audits
- 审计,自动化测试工具cmd + shift + p
在Devtools
打开的状况下,键入cmd + shift + p
将其激活,而后开始在栏中键入要查找的命令或输入"?"
号以查看全部可用命令。前端
...
: 打开文件:
: 前往文件@
:前往标识符(函数,类名等)!
: 运行脚本文件>
: 打开某菜单功能> performance monitor
> FPS
选择第一项> screen
选择Capture node screenhot
DOM
断点调试当你要调试特定元素的DOM中的更改时,可使用此选项。这些是DOM更改断点的类型: vue
Subtree modifications
: 子节点删除或添加时Attributes modifications
: 属性修改时Node Removal
: 节点删除时如上图:监听form
标签,在input
框得到焦点时,触发断点调试node
Blackbox Script
剔除多余脚本断点。jquery
例如第三方(Javascript
框架和库,广告等的堆栈跟踪)。git
为避免这种状况并集中精力处理核心代码,在Sources
或网络选项卡中打开文件,右键单击并选择Blackbox Script
github
Event Listener Breakpoints
Sources
面板Event Listener Breakpoints
local overrides
使用咱们本身的本地资源覆盖网页所使用的资源。web
相似的,使用DevTools
的工做区设置持久化,将本地的文件夹映射到网络,在chrome
开发者功能里面对css 样式的修改,都会直接改动本地文件,页面从新加载,使用的资源也是本地资源,达到持久化的效果。面试
Sources > Overrides > Enable local Overrides
,选择本地文件夹
Elements
,编辑样式,自动生成本地文件。Sources
,检查文件,编辑更改。
该项能够自动修改除XHR异步请求的资源,下载的文件若未格式化,能够点左下角。chrome
local overrides
模拟Mock
数据对于返回json 数据的接口,能够利用该功能,简单模拟返回数据。
好比:
api
为: http://www.xxx.com/api/v1/list
在根目录下,新建文件www.xxx.com/api/v1/list
,list
文件中的内容,与正常接口返回格式相同。
对象或者数组类型,从而覆盖掉原接口请求。
能够执行常见任务的功能,例如选择DOM
元素,触发事件,监视事件,在DOM
中添加和删除元素等。
这像是Chrome
自身实现的jquery
增强版。
$(selector, [startNode])
:单选择器document.querySelector
的简写 语法:
$('a').href;
$('[test-id="logo-img"]').src;
$('#movie_player').click();
复制代码
此函数还支持第二个参数startNode,该参数指定从中搜索元素的“元素”或Node。此参数的默认值为document
$$(选择器,[startNode])
:全选择器document.querySelectorAll
的简写,返回一个数组标签元素 语法:
$$('.button')
复制代码
var images = $$('img', document.querySelector('.devsite-header-background'));
for (each in images) {
console.log(images[each].src);
}
复制代码
$x(path, [startNode])
:xpath
选择器$x(path)
返回与给定xpath
表达式匹配的DOM元素数组。
例如,如下代码返回<p>
页面上的全部元素:
$x("//p")
复制代码
<p>
包含
<a>
元素的全部元素:
$x("//p[a]")
复制代码
xpath
多用于爬虫抓取,前端的同窗可能不熟悉。
getEventListeners(object)
:获取指定对象的绑定事件getEventListeners(object)
返回在指定对象上注册的事件侦听器。返回值是一个对象,其中包含每一个已注册事件类型(例如,click
或keydown
)的数组。每一个数组的成员是描述为每种类型注册的侦听器的对象。 用法:
getEventListeners(document);
复制代码
API
便捷多了。
console
warn
和
error
打印外
%s
、%o
、%d
、和%c
const text = "文本1"
console.log(`打印${text}`)
复制代码
除了标准的ES6
语法,实际上还支持四种字符串输出。 分别是:
console.log("打印 %s", text)
复制代码
%s
:字符串%o
:对象%d
:数字或小数还有比较特殊的%c
,可用于改写输出样式。
console.log('%c 文本1', 'font-size:50px; background: ; text-shadow: 10px 10px 10px blue')
复制代码
const text = "文本1"
console.log('%c %s', 'font-size:50px; background: ; text-shadow: 10px 10px 10px blue', text)
复制代码
你还能够这么玩:
console.log('%c Auth ',
'color: white; background-color: #2274A5',
'Login page rendered');
console.log('%c GraphQL ',
'color: white; background-color: #95B46A',
'Get user details');
console.log('%c Error ',
'color: white; background-color: #D33F49',
'Error getting user details');
复制代码
当咱们须要打印多个对象时,常常一个个输出。且看不到对象名称,不利于阅读:
之前个人作法是这么打印:
console.log('hello', hello);
console.log('world', world);
复制代码
这显然有点笨拙繁琐。其实,输出也支持对象解构:
console.log({hello, world});
复制代码
console.assert()
当你须要在特定条件判断时打印日志,这将很是有用。
语法
console.assert(assertion,obj)
复制代码
用法
const value = 1001
console.assert(value===1000,"value is not 1000")
复制代码
console
编组:console.group()
当你须要将详细信息分组或嵌套在一块儿以便可以轻松阅读日志时,可使用此功能。
console.group('用户列表');
console.log('name: 张三');
console.log('job: 🐶前端');
// 内层
console.group('地址');
console.log('Street: 123 街');
console.log('City: 北京');
console.log('State: 在职');
console.groupEnd(); // 结束内层
console.groupEnd(); // 结束外层
复制代码
console.time()
没有Performance API
精准,但胜在使用简便。
let i = 0;
console.time("While loop");
while (i < 1000000) {
i++;
}
console.timeEnd("While loop");
console.time("For loop");
for (i = 0; i < 1000000; i++) {
// For Loop
}
console.timeEnd("For loop");
复制代码
console.table()
这个适用于打印数组对象。。。
let languages = [
{ name: "JavaScript", fileExtension: ".js" },
{ name: "TypeScript", fileExtension: ".ts" },
{ name: "CoffeeScript", fileExtension: ".coffee" }
];
console.table(languages);
复制代码
DOM
对象节点:console.dir()
打印出该对象的全部属性和属性值. console.dir()
和console.log()
的做用区别并不明显。若用于打印字符串,则输出一摸同样。
console.log("Why,hello!");
console.dir("Why,hello!");
复制代码
log
识别为字符串输出,
dir
直接打印对象。)。
惟一显著区别在于打印dom
对象上:
console.log(document)
console.dir(document)
复制代码
DOM
树对象。
WebView
使用Chrome
开发者工具在原生Android
应用中调试WebView
。
配置WebViews
进行调试。
在 WebView
类上调用静态方法setWebContentsDebuggingEnabled
。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}
复制代码
手机打开usb
调试,插上电脑。
在Chrome
地址栏输入:Chrome://inspect
App
中打开
WebView
时,
chrome
中会监听到并显示你的页面。 4. 点击页面下的
inspect
,就能够实时看到手机上
WebView
页面的显示状态了。(第一次使用可能会白屏,这是由于须要去
https://chrome-devtools-frontend.appspot.com
那边下载文件)
除了inspect
标签,还有 Focus tab
:
Android
设备上的相同操做其余应用里的WebView
也能够,例如这是某个应用里的游戏,用的也是网页:
Node.js
具体能够查看阿里云社区的这篇:
若是你以为这篇内容对你挺有启发,我想邀请你帮我三个小忙:
也能够来个人GitHub
博客里拿全部文章的源文件:
前端劝退指南:github.com/roger-hiro/…