Inspecione o elemento que só aparece quando outro elemento é sobreposto / inserido

119

Freqüentemente, desejo inspecionar um elemento (por exemplo, dica de ferramenta) que só aparece quando outro elemento é sobreposto / inserido com o mouse. O elemento que aparece torna-se visível por meio do evento mouseenter do jQuery.

Não consigo inspecionar a dica de ferramenta, pois ela desaparece quando meu mouse deixa o elemento que o contém.

Existe uma maneira de pausar eventos JS para que eu possa passar o mouse sobre o elemento, pausar o JS do navegador e inspecioná-lo com êxito?

Por exemplo, experimente inspecionar as dicas de ferramentas de bootstrap do Twitter: http://getbootstrap.com/javascript/#tooltips .

Don P
fonte
9
Apenas para sua informação, se o elemento aparecer por causa de CSS em vez de JS, você pode forçar um :hovernele clicando com o botão direito do mouse no elemento na visualização Elementos (DOM) em Ferramentas de Desenvolvimento, selecionando "Forçar Estado do Elemento" e ": pairar".
MMM

Respostas:

226

É bastante fácil no Chrome 38.0.2094.0.

Esta será a aparência:

Passo a passo:

  1. Abra o DevTools no painel Sources
  2. Faça a dica de ferramenta aparecer passando o mouse sobre o botão
  3. Pressione F8 para congelar a página
  4. Mude para o painel Elementos e use o ícone da lupa no canto superior esquerdo para selecionar a dica de ferramenta

Se a dica de ferramenta aparecer por causa do CSS, eis o que você pode fazer nesse caso:

Passo a passo:

  1. Abra o DevTools
  2. Selecione o elemento acionador nas ferramentas de desenvolvimento (o link)
  3. Clique com o botão direito e selecione "forçar estado do elemento" e selecione ": pairar"
  4. Inspecione a dica de ferramenta CSS
Algum cara
fonte
1
@YuriyGalanter Está disponível através do ícone da luneta no canto superior esquerdo. Basta clicar no ícone e, em seguida, clicar na dica :)
Šime Vidas
3
Sim, adicionei um GIF para tornar mais fácil ver o que estou fazendo.
Some Guy
2
@DonnyP eu usei byzanz-record. É um pacote com o qual você pode pegar sudo apt-get install byzanz.
Some Guy
5
Tem também o LICEcap , que grava uma parte da tela diretamente em um GIF superotimizado . Windows, OS X e Linux.
fregante
2
@ bfred.it LICEcap não está disponível para Linux. Veja esta edição do Github no tópico. Parece que as pessoas estão tendo sucesso com o WINE .
Isaac Gregson
15

Ambos do Safari e inspetor web oferece caixas do Chrome onde você pode alternar a :active, :focus,:hover e :visitedestado de um elemento. Usar isso pode ser ainda mais fácil.

Safári:

As caixas de seleção no Safari

Cromada:

As caixas de seleção no Chrome

zıəs uɐɟəʇs
fonte
5
A dica de ferramenta não é acionada por :hoverestilos.
Šime Vidas
2
Firebug no Firefox tem a mesma coisa (menos :visited, que é restrito para evitar espionagem) - na guia HTML, está no menu suspenso "Estilo" à direita
Izkata
1
Ferramentas de desenvolvimento nativas do @Izkata para o Firefox, clique direito do mouse no elemento na farinha de rosca, ou a árvore HTML / DOM, e escolher a partir de :hover, :activeou :focus.
Kiran Price
4

Também há outra maneira complicada de fazer isso:

  1. Vá até o elemento que faz sua dica de ferramenta aparecer.
  2. Clique com o botão direito para abrir o menu contextual.
  3. Mova o mouse para a janela da ferramenta de desenvolvimento e clique com o botão esquerdo em qualquer lugar no painel de ferramentas de desenvolvimento.

Sua dica de ferramenta ficará visível, então você poderá inspecioná-la na guia Elemento.

Testado no Chrome. Não parece funcionar no Firefox.

Nicolas Forney
fonte
1
É assim que eu fazia no passado, mas a resposta de @AlgoGuy é a maneira melhor e mais fácil.
John Washam
@JohnDubya Não, realmente não é. Pode ser a forma oficial, mas certamente não é mais fácil. Existem muitas etapas envolvidas.
MiniRagnarok
Isso é o que eu normalmente faço, mas nem sempre funciona.
Synetech
3

Embora a resposta de @AlgunsGuy seja excelente (t-up para GIFs animados), como alternativa, você sempre pode fazê-lo programaticamente. Basta abrir o console e digitar o nome do evento

document.getElementById('id').dispatchEvent(new Event('event-type'));

(com sintaxe específica de javascript puro pode variar de navegador)

Ainda mais fácil com jQuery:

$('#id').trigger('event-type');

Em seu exemplo ( http://getbootstrap.com/javascript/#tooltips ), abra o console e digite, por exemplo:

$("button:contains('Tooltip on right')").mouseenter();

E a dica de ferramenta aparece no DOM e pode ser inspecionada / modificada manualmente:

<div style="top: 14406.9px; left: 1048.25px; display: block;"
id="tooltip952596" class="tooltip fade right in" role="tooltip">
<div style="" class="tooltip-arrow"></div>
<div class="tooltip-inner">Tooltip on right</div></div>

Como nos comentários, se você mover o ponteiro do mouse sobre o quadro da página, poderá acionar outros eventos, como mouseout. Para evitar isso, você pode pressionar F8(como na resposta de acesso) ou digitar debugger;(que é o equivalente do script)

blgt
fonte
1
Enquanto inspeciona o elemento, você ainda pode acionar outros eventos (como mouseout), então isso não resolve o problema em primeiro lugar. Você deve ter muito cuidado ao selecioná-lo. Mas é uma abordagem alternativa.
MMM