Como posso inspecionar um elemento que desaparece quando o mouse se afasta?
Não sei se é identidade, classe ou qualquer coisa, mas quero inspecionar.
Soluções que tentei:
Execute o seletor jQuery no console, $('*:contains("some text")')
mas não teve sorte, principalmente porque o elemento não está oculto, mas provavelmente removido da árvore DOM.
A inspeção manual da árvore do DOM em busca de alterações não me fornece nada, pois parece ser muito rápido para perceber o que mudou.
SUCESSO:
Eu fui bem-sucedido com os pontos de interrupção do evento. Especificamente - mousedown no meu caso. Basta ir Sources-> Event Listener Breakpoints-> Mouse-> mousedown
no Chrome. Depois disso, cliquei no elemento que queria inspecionar e, por dentro Scope Variables
, vi algumas orientações úteis.
fonte
document.body.addEventListener('mouseup',function(){ debugger; })
entrado no ponto de interrupção usando as fontes, executei o seguinte script no console: Isso causou uma pausa e eu pude inspecionar os elementos criados.Respostas:
(Esta resposta se aplica apenas às Ferramentas do desenvolvedor do Chrome.Consulte a atualização abaixo.)Encontre um elemento que contenha o elemento que desaparece. Clique com o botão direito do mouse no elemento e aplique "Break on ...> Subtree Modifications". Isso lançará uma pausa no depurador antes que o elemento desapareça, o que permitirá que você interaja com o elemento em um estado de pausa.
Atualização 22 de outubro de 2019: com o lançamento do v. 70, parece que o FireFox finalmente suporta esse tipo de depuração 2 3 :
fonte
<v-container><v-dialog></v-dialog><v-dialog></v-dialog></v-container>
- no meu caso, a primeira caixa de diálogo é exibida apenas até que os dados cheguem do banco de dados, aproximadamente 1 segundoUm método alternativo no Chrome:
fonte
setTimeout(()=>{debugger;},5000);
Agora você tem 5 segundos para fazer seu elemento aparecer. Depois que ele aparecer, aguarde até o depurador chegar. Contanto que você não continue, você pode brincar com seu elemento e ele não desaparecerá.
Dica útil para evitar repetir as etapas acima sempre:
adicione isso como um bookmarklet:
javascript:(function(){setTimeout(()=>{debugger;},5000);})();
Na próxima vez que você desejar usar isso, basta clicar / tocar neste marcador.
fonte
Estou usando o chrome no Mac. Segui as etapas acima, mas tentarei explicar um pouco mais:
F8
ouCommand(Window) \
. Pausará a tela em um estado estático e o elemento não desaparecerá ao passar o mouse.fonte
Ctr + Shift + C
, mover o mouse para passar o mouse sobre o elemento e pressionarF8
no espaço de um segundo e meio - eu finalmente consegui meu elemento no modoNo Firebug, existem soluções diferentes para isso:
Você também pode seguir o problema 551 , que solicita uma maneira de bloquear temporariamente eventos específicos.
Editar:
Para descobrir qual elemento é, também é possível ativar as opções do painel HTML Realçar alterações , Expandir alterações e Rolar alterações na exibição para tornar o elemento visível dentro do painel HTML.
Sebastian
fonte
No meu caso, usei a opção Expandir recursivamente no google chrome:
Os passos são:
Aqui está uma demonstração:
fonte
Passe o mouse sobre o elemento com o mouse e pressione F8 (no Chrome) para pausar a execução do script. O estado de pairar permanecerá visível para você.
Leva você para a guia fontes. Volte para a guia Elementos. Este código de tempo não irá desaparecer.
fonte
você pode ver os elementos que aparecem e desaparecem no inspetor em elementos. Se você navegar para o elemento quando estiver visível, poderá vê-lo desaparecer ou seu css mudar quando o status for alterado.
Isso é possível com o firebug no firefox ou o inspetor incorporado no chrome.
fonte
eu tive o mesmo problema, mas eu uso o Firefox, ele desaparece assim que eu abro o elemento inspecionado, encontrei uma solução: abra os 4 traços (configurações), vá para desenvolvedor da web> Depurador e pressione imediatamente F8, que é o atalho para a pausa que interrompe o script antes de chutar e detectar que você abriu as ferramentas dos desenvolvedores
fonte