ChatGPT解决这个技术问题 Extra ChatGPT

Chrome Dev Tools: How to trace network for a link that opens a new tab?

I want to trace the network activity that happens when I click on a link. The problem is that the link opens a new tab, and apparently the Dev Tools works per tab it was open for. "Preserve Log Upon Navigation" does not help.

My current solution is to move to FireFox and HttpFox which does not have this issue. I wonder how all the developers for Chrome manage, this sounds pretty basic (of course I've searched for the answer, didn't find anything helpful).

Since this question gets quite a lot of attention, I started to wonder if I can provide a better solution. Would making all links to open in the same tab do the trick?
@KonradDzwinel This was a one-off task for me and I moved on so I can't tell you. If you care to try and write an answer I'll be glad to accept it.
If you want this as a feature, feel free to Star this Chromium bug: code.google.com/p/chromium/issues/detail?id=410958
I miss Firefox because until today there was not a good way to use it except with external software. Auto popups is silly.

K
Konrad Dzwinel

Check out chrome://net-internals/#events (or chrome://net-export in the latest version of Chrome) for a detailed overview of all network events happening in your browser.

Other possible solution, depending on your specific problem, may be to enable 'Preserve log' on the 'Network' tab:

https://i.stack.imgur.com/rabex.png

and force all links to open in the same tab by executing the following code in the console:

[].forEach.call(document.querySelectorAll('a'),
    function(link){
        if(link.attributes.target) {
            link.attributes.target.value = '_self';
        }
    });

window.open = function(url) {
    location.href = url;
};

thanks this is cool, but I want the list as in the dev tools (requests&response with all headers), just for another tab
This is very interesting particularly if you ad the filter type:URL_REQUEST, but it does not seem to contain the same information as the Network tab. For instance, it seems to strip cookie data for both requests and responses.
document.querySelectorAll('a,form') would also affect forms.
I wish I could upvote this twice. I've made a content script for chrome that does this on a hotkey, and it literally saved hours of my life.
Chrome displays "The net-internals events viewer and related functionality has been removed. Please use chrome://net-export to save netlogs and the external catapult netlog_viewer to view them.", but chrome://net-export works fantastic.
佚名

The feature request mentioned in the comment by phsource has been implemented.

In recent versions (starting with Chrome 50), you can go to the Developer Tools Settings menu (open Developer Tools, then use the 3-dots menu or hit F1) and check the box that says "Auto-open DevTools for popups".


Works fine, except that it is a bit tricky to enable "Preserve logs" immediately once the window is opened.
You should update your answer, as chrome stable version is currently 55
Sigh, the new window however doesn't have activated. What's wrong with Chrome engineers?
Check Preserve Logs from parent first. Then open popups.
For chrome 90, click on the settings icon (or hit F1) and then you'll find Auto-open DevTools for popups under Global section. Make sure you have already checked Preserve log (see stackoverflow.com/a/16344250/9972417)
K
Konrad Piascik

In Chrome 61.0.3163.100 you now have the following option available. It is accessed by going to the Chrome Dev Tools Settings. It's at the bottom.

https://i.stack.imgur.com/qCfsF.png


This does unfortunately, not activate "Preserve Logs" in the newly opened window, so if you get a new window and a redirect in said window, the network log will be cleared and begin after the redirect.
The setting, for those who don't want to click the link to see the image, is "Auto-open DevTools for popups", under the heading "DevTools". Other available settings: "Preserve Log", under "Network"; "Preserve log upon navigation" under "Console".
This is working for me (Chrome 76), and it is activating "Preserve Logs" when it launches the popup windows' developer tools.This may be activated by me having the Preserve Log setting activated?
T
Tom

In Chrome 85 (still valid in Chrome 100) "Auto-open DevTools for popups" is hidden in a new place

DevTools (F12)/Settings (F1, Ctrl + ?)/Preferences/Global (at the end of the list)

https://i.stack.imgur.com/NdKhX.png

And now it keeps the "Preserve log" setting.


M
Michael L.

You can do it this way :

set target="any_window_name" on wanted link. click on that link once, to open it in new tab. In opened tab, open developer tools. go back to origin page and hit that link again. The result will be loaded in already prepared window with developer tools opened. You can activate "preserve log" option in dev tools (see in Konrad Dzwinel excellent answer) to catch any redirect traffic on that link. Note : most people familiar with link target ∈ { _self,_blank,_parent,_top }. But actually any name can be given, this will open a new window with that name, and any subsequent clicks on links,forms or window.open with same target value will be opened in same window. further reading - mdn : window.open , mdn : tag


Thank you so much for this tip, I never would have thought of it. Exactly what I needed. Works across multiple windows (in Chrome at least), if anyone reading this wants to see how two pages behave at the same time.
S
Sebastien Lorber

Add/update the link to target="_self"

Check "preserve logs upon navigation" in Network tab.

Click on the link and gets your request logged


works great, thank you!! the only solution here that was really simple, not special config and just works. Just to make it more clear to others here are the steps: 1. copy the link (the one that opens a new tab or window) 2. go to a new tab 3. open dev tools (right click + inspect) 4. go to network tab (this starts recording network traffic on this new tab 5. paste the URL and add ?target="_self" 6. click Enter
o
orgads

In case the opened link does not redirect, you can open the Network tab in the new tab then refresh the tab.


H
HttpWatchSupport

* Disclaimer: Posted by Developer of HttpWatch *

HttpWatch on Windows can record the network traffic generated when a new Chrome tab or window is opened by enabling auto-recording in Tools->Options->Recording. In the new window click on the HttpWatch icon to view the network trace.

The free version will provide basic information such as URL, status code and elapsed time for each request.

* Disclaimer: Posted by Developer of HttpWatch *