無論是作爬蟲仍是寫 Web App,Chrome 和 Firefox 的 DevTools 都是超經常使用的,可是常常發現別人的截圖有什麼字段我找不到,別人的什麼功能個人 Chrome 沒有,仔細一搜索才知道,原來是我不會用。。javascript
Ctrl + Shift + I
:打開 DevTools
Ctrl + Shift + J
:打開控制檯css
Ctrl + F
:在當前位置搜索關鍵字
Ctrl + Shift + F
:全文搜索,在當前 Web App 的全部文件中搜索。
在 DevTools 裏按快捷鍵 Ctrl + Shift + P
就能打開 Command 輸入框,它和 vscode/sublime 的 Command 同樣,用好了特別方便。java
Chrome 能夠右鍵屬性列名來增減屬性列,Firefox-Dev 也是同樣:
node
在 Chrome 中右鍵某個請求,選中 copy,會給出幾個 options:
python
而 Firefox-Dev 的更強一點,能夠複製消息頭(請求頭和響應頭):
git
Chrome 的 Response 頁面左下角,有{}
按鈕,能夠 beautify 響應。
web
而 Firefox-Dev 只在 Debugger 頁面提供該按鈕,Response 中不支持。chrome
Firefox 響應的 preview 和 payload 是放在 Response 頁面下。而 Chrome 是分紅了兩個標籤頁
segmentfault
右鍵任意一個請求,選擇 save all as HAR
,就能夠導出 HAR 文件。(Chrome 有 with content,導出的 HAR 文件會含有全部請求與響應的 body)瀏覽器
該文件可用於存儲當前監聽到的全部瀏覽器請求信息。在之後須要分析這些請求時,將 HAR 文件拖到 Network 頁面便可恢復全部請求。
Chrome 只支持查看 HTTP/1.x 的 Raw Headers,對這種請求,會給出 view source
選項。
Chrome 不能查看 HTTP/2 的 Raw Headers。
而 Firefox 則支持查看 HTTP/2 的 Raw Headers。(是恢復後的,HTTP/2 的原始消息頭是二進制壓縮形式)
它還提供 Edit and Resend 請求的功能,這點要給個贊~
在 NetWork 中點擊對應的 WebScoket 請求,在右側選擇 Frames 標籤,就能夠看到全部的消息了
當頁面重載或者頁面跳轉時,默認狀況下,Network面板下的網絡請求記錄表也是刷新的。若是想保留以前頁面的網絡請求數據,能夠勾選Preserve log。
經常使用的一個應用場景:登陸/註冊時會調用登陸/註冊API,開發者想查看這個接口返回的狀況,可是登陸/註冊成功後通常會跳轉到新的頁面,致使了Network面板的請求記錄被刷新從而看不到登陸/註冊接口返回的狀況。此時勾選上Preserve log,不管跳轉到那個頁面,都能在Network網絡請求記錄表中查看到以前接口返回的狀況。
$x(<xpath>, <DOM-element>)
,用 xpath 查詢 DOM 元素。在 Elements
頁面,右鍵一個元素,有一個 Break on
選項,能夠控制在特定事件發生時 Break.
- subtree modification: 子節點被修改
- attribute modification:當前節點的屬性被修改。(inline style 被修改也會觸發此事件)
- node removal:節點被移除
在 Elements 頁面選中一個元素(或者直接右鍵檢查該元素),而後在右側窗口,選擇 Event Listeners 標籤,就能夠看到該元素上註冊的全部事件。
選中任一元素,在右側選擇 Styles 選單,會顯示當前元素的 css 屬性。
其中全部的顏色小方塊都是能夠點擊的,點擊顏色方塊後
#207981
rgb(32, 121, 129)
hsl(185, 60%, 32%)
Ctrl + Shift + C
或者點擊 DevTools 最左上角的小箭頭按鈕,就能進入元素審查模式。
該模式下會自動審查鼠標所指的元素,Elements 頁面也會自動定位到該元素。
Sources 右側的 Debugger 支持各類斷點調試。
Chrome 的斷點功能比 Firefox-Dev 的更豐富。
方法一:在 DevTools 界面,按快捷鍵 Ctrl + Shift + P
打開 Command 窗口,而後輸入 screenshot
,在下拉欄裏選擇你須要的截圖命令就行。
方法二:
先進 dev tools,點擊 左上角的設備圖標(toggle device toolbar),而後頁面頂部就會出現一個導航欄,在這裏好選擇設備或者自定義圖像尺寸,而後點擊該導航欄右側(不是 dev tools 右側)的 options 圖標,會有兩個選項:「截圖(capture screenshot)」和「截網頁全圖(capture full size screenshot)」,以下:
take a screenshot of the entire page
,DevTools 右上角就會出現截圖按鈕了。在 Chrome 中進入 DevTools,點擊右上角的 options 按鈕,選擇 More tools -> Sensors,在 Geolocation 處選擇 Custom location,就能夠修改地理位置了。
和 上一小節同樣,先進 More tools,選擇 Network conditions,取消勾選 Select atuomatically,就能夠修改請求頭了。
上面的演示中,使用 python-requests/2.21.0
作 user agent,知乎返回 404.
打開設備模擬,在 toolbar 的右上角勾選 show user agent
,而後就能夠在 toolbar 修改 user agent 了:
在 Network 的任意請求上右鍵,菜單中就有 Block request URL(阻塞該 URL)和 Block request domain(阻塞請求所在的整個域)
而後就能夠在 More tools -> Request blocking 中看到你設置的阻塞條件。