Chrome Dev Tools: come tracciare la rete per un collegamento che apre una nuova scheda?


236

Voglio tracciare l'attività di rete che si verifica quando faccio clic su un collegamento. Il problema è che il collegamento apre una nuova scheda e apparentemente Dev Tools funziona per ogni scheda per cui era aperto. "Mantieni registro durante la navigazione" non aiuta.

La mia attuale soluzione è quella di passare a FireFox e HttpFox che non presenta questo problema. Mi chiedo come gestiscano tutti gli sviluppatori di Chrome, sembra abbastanza semplice (ovviamente ho cercato la risposta, non ho trovato nulla di utile).


Dal momento che questa domanda riceve molta attenzione, ho iniziato a chiedermi se posso fornire una soluzione migliore. Fare tutti i collegamenti per aprire nella stessa scheda farebbe il trucco?
Konrad Dzwinel,

@KonradDzwinel Questa è stata un'attività una tantum per me e sono passato quindi non posso dirtelo. Se ti interessa provare a scrivere una risposta, sarò felice di accettarla.
davka,

1
Se lo desideri come funzionalità, sentiti libero di
aggiungere

Risposte:


220

Dai un'occhiata chrome://net-internals/#events(o chrome://net-exportnell'ultima versione di Chrome) per una panoramica dettagliata di tutti gli eventi di rete che si verificano nel tuo browser.


Un'altra possibile soluzione, a seconda del problema specifico, potrebbe essere quella di abilitare "Conserva registro" nella scheda "Rete":

DevTools> Rete> Conserva registro

e forzare l'apertura di tutti i collegamenti nella stessa scheda eseguendo il seguente codice nella console:

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

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

13
grazie va bene, ma voglio la lista come negli strumenti di sviluppo (richieste e risposte con tutte le intestazioni), solo per un'altra scheda
davka

Ciò è molto interessante soprattutto se si type:URL_REQUESTinserisce il filtro , ma non sembra contenere le stesse informazioni della scheda Rete. Ad esempio, sembra rimuovere i dati dei cookie sia per le richieste che per le risposte.
Patrick M,

3
document.querySelectorAll('a,form')influenzerebbe anche le forme.
jgb

1
Vorrei poter votare questo due volte. Ho creato uno script di contenuti per Chrome che lo fa su un tasto di scelta rapida e ha letteralmente salvato ore della mia vita.
polkovnikov.ph

1
Chrome visualizza "Il visualizzatore eventi net-internals e le relative funzionalità sono stati rimossi. Utilizzare chrome: // net-export per salvare netlogs e la catapulta netlog_viewer esterno per visualizzarli." , ma chrome: // net-export funziona alla grande.
Giordania,

109

La richiesta di funzionalità menzionata nel commento da phsource è stata implementata.

Nelle versioni recenti (a partire da Chrome 50), puoi andare al menu Impostazioni strumenti di sviluppo (apri Strumenti di sviluppo, quindi utilizza il menu a 3 punti o premi F1) e seleziona la casella "Apri automaticamente DevTools per i popup".


13
Funziona bene, tranne per il fatto che è un po 'complicato abilitare "Conserva i registri" immediatamente dopo l'apertura della finestra.
Erwin Mayer,

Dovresti aggiornare la tua risposta, poiché la versione di Chrome stabile è attualmente 55
Lulu

5
Sospiro, tuttavia nella nuova finestra non è attivato <Conserva registri>. Cosa c'è che non va negli ingegneri di Chrome?
Pacerier,

Utilizzalo in combinazione con stackoverflow.com/a/29029881/145400 (un'ottima risposta a "Chrome Dev Tools è possibile rimanere aperti anche dopo la chiusura della finestra?")!
Dr. Jan-Philip Gehrcke,

usa il menu a 3 punti o premi> pagina delle preferenze> DevTools> "Apri automaticamente DevTools per i popup"
holly

27

In Chrome 61.0.3163.100 ora hai la seguente opzione disponibile. Vi si accede andando alle impostazioni di Chrome Dev Tools. È in fondo.

Impostazioni di Web Inspector


3
Questo purtroppo non attiva "Conserva registri" nella finestra appena aperta, quindi se si ottiene una nuova finestra e un reindirizzamento in detta finestra, il registro di rete verrà cancellato e inizierà dopo il reindirizzamento.
gennaio

4
L'impostazione, per coloro che non vogliono fare clic sul collegamento per vedere l'immagine, è "Apri automaticamente DevTools per i popup", sotto la voce "DevTools". Altre impostazioni disponibili: "Conserva registro", sotto "Rete"; "Mantieni registro durante la navigazione" in "Console".
hlongmore,

2
Questo funziona per me (Chrome 76) e sta attivando "Conserva registri" quando avvia gli strumenti di sviluppo delle finestre popup. Questo può essere attivato da me con l'impostazione Preserve Log attivata?
Vince Bowdren,

11
  • Aggiungi / aggiorna il link a target="_self"
  • Seleziona "conserva i registri durante la navigazione" nella scheda Rete.
  • Fare clic sul collegamento e ottenere la richiesta registrata

10

Puoi farlo in questo modo:

  1. imposta target = "any_window_name" sul link desiderato.
  2. fai clic su quel link una volta per aprirlo in una nuova scheda.
  3. Nella scheda aperta, apri gli strumenti di sviluppo.
  4. torna alla pagina di origine e premi di nuovo quel link.

    Il risultato verrà caricato in una finestra già predisposta con gli strumenti di sviluppo aperti.

    Puoi attivare l'opzione "preservare il registro" negli strumenti di sviluppo (vedi nella risposta eccellente di Konrad Dzwinel) per catturare il traffico di reindirizzamento su quel link.

    Nota : la maggior parte delle persone che hanno familiarità con il target di collegamento ∈ {_self, _blank, _parent, _top}. Ma in realtà qualsiasi nome può essere dato, questo aprirà una nuova finestra con quel nome e qualsiasi clic successivo su collegamenti, moduli o window.open con lo stesso valore target verrà aperto nella stessa finestra. ulteriori letture - mdn: window.open , mdn: <a> tag


Grazie mille per questo suggerimento, non ci avrei mai pensato. Esattamente quello di cui avevo bisogno. Funziona su più finestre (almeno in Chrome), se qualcuno che legge questo vuole vedere come si comportano due pagine contemporaneamente.
Mark Ormesher,

3

Nel caso in cui il collegamento aperto non reindirizzi, è possibile aprire la scheda Rete nella nuova scheda, quindi aggiornare la scheda.



0

* Disclaimer: pubblicato dallo sviluppatore di HttpWatch *

HttpWatch su Windows può registrare il traffico di rete generato quando viene aperta una nuova scheda o finestra di Chrome abilitando la registrazione automatica in Strumenti-> Opzioni-> Registrazione. Nella nuova finestra fare clic sull'icona HttpWatch per visualizzare la traccia di rete.

La versione gratuita fornirà informazioni di base come URL, codice di stato e tempo trascorso per ogni richiesta.

* Disclaimer: pubblicato dallo sviluppatore di HttpWatch *

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.